不做過多介紹 直接實現目的
kafka和flume的包就自行百度即可,kafka的安裝教程:https://blog.csdn.net/qq_41594146/article/details/100153434
flume的話直接下載後解壓即可用
直接上解釋的配置文件:
#agent name :a1 #給代理取的名字
a1.sources = r1 #sources認定下方帶r1
a1.sinks = k1 #理解同上
a1.channels = c1 #理解同上
# Flume source
a1.sources.r1.type = exec #監聽的類型
a1.sources.r1.command = tail -f /home/testdata.txt #監聽時使用的指令 這個可自行修改成你需要的指令 加 |grep 可實現過濾效果
a1.sources.r1.shell=/bin/sh -c
a1.sources.r1.batchSize = 1000
a1.sources.r1.batchTimeout = 3000
a1.sources.r1.channels = c1
# Flume channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000000
a1.channels.c1.transactionCapacity = 100000
a1.channels.c1.byteCapacityBufferPercentage = 10
#a1.channels.c1.byteCapacity = 800000
# Flume sink
a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = test
a1.sinks.k1.brokerList = 192.168.79.137:9092 #kafka的配置 如果是集羣 用逗號隔開
a1.sinks.k1.requiredAcks = 1
a1.sinks.k1.batchSize = 2000
運行flume:
nohup bin/flume-ng agent -c conf -f conf/flume2kafka.properties -n a1 -Dflume.root.logger=INFO,console &
# -f後帶的是指定的配置文件名 -n 後面帶的是代理的名字 上方的配置文件用的是a1所以這裏用a1 再後面帶的是運行時的jvm參數
效果:
模擬文件寫入情況:
java程序消費情況: