Spooling Directory Source 使用

在使用exec来监听数据源虽然实时性较高,但是可靠性较差,当source程序运行异常或者linux命令中断,都会造成数据的丢失,再恢复正常运行之前,数据的完整性无法得到保证。
Spooling Directory Source通过监听某个目录下的新增文件,并将文件的内容读取出来,实现日志信息的收集。实际使用中会结合log4j进行使用。被传输结束的文件会修改后缀名,添加.completed后缀(可以自定义)。

下面编写agent,对Spooling Directory Source进行简单的使用,并使用File Channel。

编写agent

#define agent1
agent1.sources = r3
agent1.channels = c3
agent1.sinks = k3

# defined source 
agent1.sources.r3.type = spooldir
agent1.sources.r3.spoolDir = /home/bxp/Documents/doc/flume/logs
#"^$":所有的都抽取,下面的正则为,只收集以不.log结尾的日志文件
agent1.sources.r3.ignorePattern = ^(.)*\\.log$
#设置传输完成的文件的后缀
agent1.sources.r3.fileSuffix = .com

# defined channel
#使用File Channel
agent1.channels.c3.type = file

agent1.channels.c3.checkpointDir = /home/bxp/Documents/doc/flume/checkpoint

agent1.channels.c3.dataDirs = /home/bxp/Documents/doc/flume/data

# defined sinks
agent1.sinks.k3.type = hdfs
agent1.sinks.k3.hdfs.path = hdfs://hadoop-series.bxp.com:8020/user/bxp/flume/testsp-log/%Y%m%d
agent1.sinks.k3.hdfs.useLocalTimeStamp = true
agent1.sinks.k3.hdfs.fileType = DataStream 
agent1.sinks.k3.hdfs.writeFormat = Text
agent1.sinks.k3.hdfs.batchSize = 10

#bind the sources and sink to the channel
agent1.sources.r3.channels = c3
agent1.sinks.k3.channel = c3

执行agent

bin/flume-ng agent --conf conf/  --name agent1 --conf-file conf/agent1-app.conf -Dflume.root.logger=DEBUG,console

需要注意的是,

agent1.channels.c3.checkpointDir = /home/bxp/Documents/doc/flume/checkpoint
agent1.channels.c3.dataDirs = /home/bxp/Documents/doc/flume/data

中指定的目录需要先再本地创建好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值