Flume监控文件采集文件到 HDFS

采集需求:比如业务系统使用 log4j 生成的日志,日志内容不断增加,需要把追
加到日志文件中的数据实时采集到 hdfs 

根据需求,首先定义以下 3 大要素 
 采集源,即 source——监控文件内容更新 :  exec  ‘tail -F file’ 
 下沉目标,即 sink——HDFS 文件系统  :  hdfs sink 
 Source 和 sink 之间的传递通道——channel,可用 file channel 也可以用 
内存 channel   

配置文件编写: 
# Name the components on this agent 
a1.sources = r1 
a1.sinks = k1 
a1.channels = c1 
 
# Describe/configure the source 
a1.sources.r1.type = exec 
a1.sources.r1.command = tail -F /root/logs/test.log 
a1.sources.r1.channels = c1 
 
# Describe the sink 
a1.sinks.k1.type = hdfs 
a1.sinks.k1.hdfs.path = /flume/tailout/%y-%m-%d/%H%M/ 
a1.sinks.k1.hdfs.filePrefix = events- 
a1.sinks.k1.hdfs.round = true 
a1.sinks.k1.hdfs.roundValue = 10 
a1.sinks.k1.hdfs.roundUnit = minute 
#每3秒把临时文件滚动成目标文件
a1.sinks.k1.hdfs.rollInterval = 3 
#临时文件达到20bytes生成目标文件
a1.sinks.k1.hdfs.rollSize = 20 
#当events数量达到5个时,生成目标文件
a1.sinks.k1.hdfs.rollCount = 5 
a1.sinks.k1.hdfs.batchSize = 1 
a1.sinks.k1.hdfs.useLocalTimeStamp = true #生成的文件类型,默认是 Sequencefile,可用 DataStream,则为普通文本 
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 

参数解析: 
 rollInterval 
默认值:30 
hdfs sink 间隔多长将临时文件滚动成最终目标文件,单位:秒; 
如果设置成 0,则表示不根据时间来滚动文件; 
	注:滚动(roll)指的是,hdfs sink 将临时文件重命名成最终目标文 件,并新打开一个临时文件来写入数据; 
 rollSize 
默认值:1024 
当临时文件达到该大小(单位:bytes)时,滚动成目标文件; 
如果设置成 0,则表示不根据临时文件大小来滚动文件; 
 rollCount 
默认值:10 
当 events 数据达到该数量时候,将临时文件滚动成目标文件; 
如果设置成 0,则表示不根据 events 数据来滚动文件; 
 round 
默认值:false 
是否启用时间上的“舍弃”,这里的“舍弃”,类似于“四舍五入”。 
 roundValue 
默认值:1 
时间上进行“舍弃”的值; 


 roundUnit 
默认值:seconds 
时间上进行“舍弃”的单位,包含:second,minute,hour 
示例: 
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S 
a1.sinks.k1.hdfs.round = true 
a1.sinks.k1.hdfs.roundValue = 10 
a1.sinks.k1.hdfs.roundUnit = minute 
当时间为 2015-10-16 17:38:59 时候,hdfs.path 依然会被解析为: 
/flume/events/20151016/17:30/00 
因为设置的是舍弃 10 分钟内的时间,因此,该目录每 10 分钟新生成一 个。 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值