flume使用taildir,监控多个文件夹下的多个文件

在flume1.6及之前,要监控多个目录下的多个文件,可以使用Filelistener,在flume1.7之后,增加了TAILDIR,主要是监控文件的变化
下面介绍taildir的使用:
第一步:在flume中创建conf配置文件,我的是创建在:flume下的job文件夹中,job文件夹是我自定义的用来存放conf配置文件的:
/opt/module/flume/job/flume-mysource-kafka2.conf
内容如下:

a1.sources = r1
a1.channels = c1

a1.sources.r1.type = TAILDIR
#偏移量文件
a1.sources.r1.positionFile = /opt/module/flume/data/positionoffset.txt
#文件的组,可以定义多种
a1.sources.r1.filegroups = f1 f2
#第一组监控的是test1文件夹中的什么文件:.log文件
a1.sources.r1.filegroups.f1 = /opt/module/flume/data/test1/.*log
#下面这句可以不要
#a1.sources.r1.headers.f1.headerKey1 = value1
#第二组监控的是test2文件夹中的什么文件:以.txt结尾的文件
a1.sources.r1.filegroups.f2 = /opt/module/flume/data/test2/.*txt

#下面两句可以不要
#a1.sources.r1.headers.f2.headerKey1 = value2
#a1.sources.r1.headers.f2.headerKey2 = value2-2
#a1.sources.r1.fileHeader = true
#a1.sources.ri.maxBatchCount = 1000


a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers = hadoop101:9092,hadoop102:9092,hadoop103:9092
a1.channels.c1.kafka.topic = taildir
a1.channels.c1.kafka.consumer.group.id = taildir-consumer

a1.sources.r1.channels = c1

第二步:将/opt/module/flume/data/test1/.*log和 /opt/module/flume/data/test2/.*txt 这两种文件创建好
第三步:开启flume监控命令

bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-mysource-kafka2.conf -Dflume.root.logger=INFO,console

我的是将kafka作为了channel使用,所以我的配置文件中并没有关于sink的设置
第四步:可以开启一个消费者,从指定topic中获取数据,来检测是否taildir起作用

总结:使用taildir,flume可以同时监控多个文件夹下的多个文件

你可能感兴趣的:(大数据)