MHuiG

「看庭前花开花落,望天上云卷云舒」

监控目录变化

# Flume 监控目录变化

## 需求分析

采集需求：某服务器的某特定目录下，会不断产生新的文件，每当有新文件出现，就需要把文件采集到 HDFS 中去

根据需求，首先定义以下 3 大要素
数据源组件，即 source —— 监控文件目录 : `spooldir`
下沉组件，即 sink —— HDFS 文件系统 : hdfs sink
通道组件，即 channel —— 可用 file channel 也可以用内存 channel

spooldir 特性：

- 1、监视一个目录，只要目录中出现新文件，就会采集文件中的内容
- 2、采集完成的文件，会被 agent 自动添加一个后缀：COMPLETED
- 3、所监视的目录中不允许重复出现相同文件名的文件

## flume 配置文件开发

    cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
    mkdir -p /export/servers/dirfile
    vim spooldir.conf

spooldir.conf

    # Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    # Describe/configure the source
    ##name is only one
    a1.sources.r1.type = spooldir
    a1.sources.r1.spoolDir = /export/servers/dirfile
    a1.sources.r1.fileHeader = true
    # Describe the sink
    a1.sinks.k1.type = hdfs
    a1.sinks.k1.channel = c1
    a1.sinks.k1.hdfs.path =
    hdfs://node01:8020/spooldir/files/%y-%m-%d/%H%M/
    a1.sinks.k1.hdfs.filePrefix = eventsa1.sinks.k1.hdfs.round = true
    a1.sinks.k1.hdfs.roundValue = 10
    a1.sinks.k1.hdfs.roundUnit = minute
    a1.sinks.k1.hdfs.rollInterval = 3
    a1.sinks.k1.hdfs.rollSize = 20
    a1.sinks.k1.hdfs.rollCount = 5
    a1.sinks.k1.hdfs.batchSize = 1
    a1.sinks.k1.hdfs.useLocalTimeStamp = true
    #gen filestyle,default Sequencefile,use DataStream text
    a1.sinks.k1.hdfs.fileType = DataStream
    # Use a channel which buffers events in memory
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    # Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1

Channel 参数解释：
capacity：默认该通道中最大的可以存储的 event 数量
trasactionCapacity：每次最大可以从 source 中拿到或者送到 sink 中的 event 数量
keep-alive：event 添加到通道中或者移出的允许时间

## 启动 flume

    bin/flume-ng agent -c ./conf -f ./conf/spooldir.conf -n a1 -Dflume.root.logger=INFO,console

## 上传文件到指定目录

将不同的文件上传到下面目录里面去，注意文件不能重名

    cd /export/servers/dirfile

Flume 的安装部署

安装部署 Flume 的安装部署 案例：使用网络 telent 命令向一台机器发送一些网络数据，然后通过 flume 采集网络端口数据 第一步：下载解压修改配置文件Flume 的安装非...

Flume 监控文件变化

监控文件变化 Flume 监控文件变化 需求分析采集需求：比如业务系统使用 log4j 生成的日志，日志内容不断增加，需要把追加到日志文件中的数据实时采集到 hdfs 根据需求，首先定义...

推荐阅读
Flume 两个agent级联 Flume 监控文件变化 Flume 高可用配置 Flume 负载均衡 load balancer Flume 的安装部署 Flume 介绍

留言区

Notes
Flume
本文目录
<pjax>
</pjax>
<pjax></pjax>
<pjax> Are You A Robot?</pjax>