002- Flume Source之TailDir

Posted BearData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002- Flume Source之TailDir相关的知识,希望对你有一定的参考价值。

Flume Taildir Source是用来监控指定的文件。即使在文件递归的时候,这种方式可靠并且不会丢失数据。它会定期的读取每个文件上一次的读取位置,位置信息以json的形式存储,如果Flume停止了或者由于其他原因宕掉了,等到下次重启的时候还会在JSON中记录的位置开始读取。

一,属性说明

【002】- Flume Source之TailDir

二,配置内容

a1.sources = r1

a1.channels = c1

a1.sinks = s1

a1.sources.r1.type = TAILDIR

a1.sources.r1.channels = c1

a1.sources.r1.positionFile = /var/log/flume/taildir_position.json

a1.sources.r1.filegroups = f1 f2

a1.sources.r1.filegroups.f1 = /var/log/test1/example.log

a1.sources.r1.headers.f1.headerKey1 = value1

a1.sources.r1.filegroups.f2 = /var/log/test2/.*log.*

a1.sources.r1.headers.f2.headerKey1 = value2

a1.sources.r1.headers.f2.headerKey2 = value2-2

a1.sources.r1.fileHeader = true

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.sinks.s1.type = logger

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

三,测试

向example.log中写入字符串

【002】- Flume Source之TailDir

可以看到,在Flume控制台输出了写入的内容,我们的sink定义的是控制台

【002】- Flume Source之TailDir

向其他目录的文件中发数据

【002】- Flume Source之TailDir

同样我们在控制台看到输出数据

最后我们来看一下生成JSON文件

[{"inode":3018506,"pos":15,"file":"/var/log/test1/example.log"},{"inode":3018507,"pos":27,"file":"/var/log/test2/a.log"},{"inode":3018508,"pos":0,"file":"/var/log/test2/b.log"}]

以上就是TailDir Source的介绍,下一篇我们将介绍Http Soure。



长按二维码,关注BearData

以上是关于002- Flume Source之TailDir的主要内容,如果未能解决你的问题,请参考以下文章

大数据面试题flume篇

Flume技术

数据采集工具Flume和Sqoop

Day15:数据采集工具Flume与Sqoop

003- Flume Source之HTTP

005- Flume Source之Custom