• 大数据培训企业开发案例实时读取目录文件到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

  • 相关阅读:
    论文阅读笔记 | 三维目标检测——VoxelRCNN算法
    Snort中pcre和正则表达式的使用
    一文彻底弄懂Linux-Shell编程
    简历(快速上手)
    如何使用jenkins、ant、selenium、testng搭建自动化测试框架
    【web课程设计网页规划与设计】基于HTML+CSS+JavaScript火车票网上预订系统网站(4个页面)
    开源VOSK引擎免费语音转文字部署
    深度学习(pytorch)——利用GPU给网络训练的2种方法
    B. M-arrays
    Java8实战[第6章]用流收集数据groupingBy、partitioningBy、collectingAndThen、max、min、sum
  • 原文地址:https://blog.csdn.net/zjjcchina/article/details/127841388