flume使用taildir,監控多個文件夾下的多個文件

在flume1.6版本及之前,如果想要監控多個目錄下的多個文件,可以使用Filelistener,在flume1.7之後,增加了TAILDIR,主要是監控文件的變化
下面介紹taildir的使用:
第一步:在flume中創建conf配置文件,我的是創建在:flume下的job文件夾中,job文件夾是我自定義的用來存放conf配置文件的:
/opt/module/flume/job/flume-file-kafka3.conf
內容如下:

a1.sources = r1
a1.channels = c1

a1.sources.r1.type = TAILDIR
#偏移量文件
a1.sources.r1.positionFile = /opt/module/flume/data/taildir_position.json
#文件的組,可以定義多種
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 = myhadoop101:9092,myhadoop102:9092,myhadoop103: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-file-kafka3.conf -Dflume.root.logger=INFO,console

我的是將kafka作爲了channel使用,所以我的配置文件中並沒有關於sink的設置

第四步:可以開啓一個消費者,從指定topic中獲取數據,來檢測是否taildir起作用
總結:使用taildir,flume可以同時監控多個文件夾下的多個文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章