• 大数据培训企业开发案例实时读取目录文件到HDFS案例


    实时读取目录文件到HDFS案例

    1)案例需求:使用Flume监听整个目录的文件

    2)需求分析:

    大数据培训

    3)实现步骤:

    1.创建配置文件flume-dir-hdfs.conf

    创建一个文件

    [atguigu@hadoop102 job]$ touch flume-dir-hdfs.conf

    打开文件

    [atguigu@hadoop102 job]$ vim flume-dir-hdfs.conf

    添加如下内容

    a3.sources = r3

    a3.sinks = k3

    a3.channels = c3

    # Describe/configure the source

    a3.sources.r3.type = spooldir

    a3.sources.r3.spoolDir = /opt/module/flume/upload

    a3.sources.r3.fileSuffix = .COMPLETED

    a3.sources.r3.fileHeader = true

    #忽略所有以.tmp结尾的文件,不上传

    a3.sources.r3.ignorePattern = ([^ ]*\.tmp)

    # Describe the sink

    a3.sinks.k3.type = hdfs

    a3.sinks.k3.hdfs.path = hdfs://hadoop102:9000/flume/upload/%Y%m%d/%H

    #上传文件的前缀

    a3.sinks.k3.hdfs.filePrefix = upload-

    #是否按照时间滚动文件夹

    a3.sinks.k3.hdfs.round = true

    #多少时间单位创建一个新的文件夹

    a3.sinks.k3.hdfs.roundValue = 1

    #重新定义时间单位

    a3.sinks.k3.hdfs.roundUnit = hour

    #是否使用本地时间戳

    a3.sinks.k3.hdfs.useLocalTimeStamp = true

    #积攒多少个Event才flush到HDFS一次

    a3.sinks.k3.hdfs.batchSize = 100

    #设置文件类型,可支持压缩

    a3.sinks.k3.hdfs.fileType = DataStream

    #多久生成一个新的文件

    a3.sinks.k3.hdfs.rollInterval = 60

    #设置每个文件的滚动大小大概是128M

    a3.sinks.k3.hdfs.rollSize = 134217700

    #文件的滚动与Event数量无关

    a3.sinks.k3.hdfs.rollCount = 0

    # Use a channel which buffers events in memory

    a3.channels.c3.type = memory

    a3.channels.c3.capacity = 1000

    a3.channels.c3.transactionCapacity = 100

    # Bind the source and sink to the channel

    a3.sources.r3.channels = c3

    a3.sinks.k3.channel = c3

    大数据培训

    2. 启动监控文件夹命令

    [atguigu@hadoop102 flume]$ bin/flume-ng agent –conf conf/ –name a3 –conf-file job/flume-dir-hdfs.conf

    说明: 在使用Spooling Directory Source时

    1. 不要在监控目录中创建并持续修改文件
    2. 上传完成的文件会以.COMPLETED结尾
    3. 被监控文件夹每500毫秒扫描一次文件变动

    3. 向upload文件夹中添加文件

    在/opt/module/flume目录下创建upload文件夹

    [atguigu@hadoop102 flume]$ mkdir upload

    向upload文件夹中添加文件

    [atguigu@hadoop102 upload]$ touch atguigu.txt

    [atguigu@hadoop102 upload]$ touch atguigu.tmp

    [atguigu@hadoop102 upload]$ touch atguigu.log

    4. 查看HDFS上的数据

    大数据培训

    5. 等待1s,再次查询upload文件夹

    [atguigu@hadoop102 upload]$ ll

    总用量 0

    -rw-rw-r–. 1 atguigu atguigu 0 5月  20 22:31 atguigu.log.COMPLETED

    -rw-rw-r–. 1 atguigu atguigu 0 5月  20 22:31 atguigu.tmp

    -rw-rw-r–. 1 atguigu atguigu 0 5月  20 22:31 atguigu.txt.COMPLETED

  • 相关阅读:
    阿里巴巴最新的 SpringCloud 面试题是如何让我“颜面扫地”的?
    CDGA数据治理工程师考试心得
    思科Etherchannel
    深度学习优化算法之动量法[公式推导](MXNet)
    Spring-boot运行原理(主启动类)
    在K8S中Longhorn存储
    如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程
    晚上有些凉
    18 计专
    关于IDEA中gradle项目bootrun无法进入断点以及gradle配置页面不全的解决方案
  • 原文地址:https://blog.csdn.net/zjjcchina/article/details/127841388