创建配置文件
创建配置文件dirListen.conf,监听目录变化,被监听的目录下创建的文件会被上传到hdfs中
[root@master ~]# mkdir /usr/local/src/flume/job/dirListen.conf
[root@master ~]# vi /usr/local/src/flume/job/dirListen.conf
# 基本组件
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# 配置source监听源
a1.sources.s1.type = spooldir # spooldir目录类型
a1.sources.s1.spoolDir = /usr/local/src/logs # 监听目录路径
a1.sources.s1.fileHeader = true # 是否在header中添加完整的文件信息
# 配置sink接收器
a1.sinks.k1.type = hdfs # 输出到hdfs
a1.sinks.k1.hdfs.path = /flume/spooldir/%Y%m%d%H # 文件保存路径
#控制文件夹,把10分钟之内的保存在一个文件夹中
a1.sinks.k1.hdfs.round = true # 是否启用时间上的'舍弃'
a1.sinks.k1.hdfs.roundValue=10 # 时间上进行'舍弃'的值
a1.sinks.k1.hdfs.roundUnit = minute # 时间上进行'舍弃'的单位
#描述文件迭代次数 满足其中一个条件则打开一个新的临时文件继续写入
a1.sinks.k1.hdfs.rollInterval = 3 # 时隔多长将临时文件滚动成最终文件,单位为秒,如果设置为0,则表示关闭
a1.sinks.k1.hdfs.rollSize = 20 # 当临时文件达到多少(单位:byte)时,滚动成目标文件,如果设置为0,则表示关闭
a1.sinks.k1.hdfs.rollCount = 5 # 当event数据达到该数量时,将临时文件滚动成目标文件,如果设置为0.则表示关闭
a1.sinks.k1.hdfs.filePrefix = events- # 保存数据的浅前缀名
a1.sinks.k1.hdfs.fileType = DataStream # 文件格式,DataStream不会被压缩
a1.sinks.k1.hdfs.useLocalTimeStamp = true # 是否使用本地时间
# Use a channel which buffers events in memory 使用内存通道缓冲事件
a1.channels.c1.type = memory # 指定通道为内存
a1.channels.c1.capacity = 1000 # 存储在通道内的最大容量
a1.channels.c1.transactionCapacity = 100 # 从一个source中取或者传输到sink,每个事务中最大的事件数
# Bind the source and sink to the channel 将源和接收器绑定到通道
a1.sources.r1.channels = c1 # 注意一个源可以有多个通道channels
a1.sinks.k1.channel = c1
启动
[root@master ~]# flume-ng agent -f /usr/local/src/flume/job/dirListen.conf -n a1
参数详解
- flume-ng flume启动命令
- agent 运行一个flume agent
- -f /usr/local/src/flume/job/dirListen.conf 指定一个配置文件
- -n a1 agent名称(必填)