flume 的kafka sink及 taill 命令
阿新 • • 發佈:2019-01-02
本文內容:
flume 通過監控檔案然後將結果輸出到 kafka ,其實也就是 使用kafkaSink
步驟
安裝zookeeper 略
安裝 kafka 略
安裝flume 略
以上的內容我的其他部落格都有寫。
新建flume 配置檔案 kafkaSink.conf內容如下:
(source 使用 exec channel 使用memory,sink 是官方的kafkaSink )
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources .r1.type = exec
a1.sources.r1.shell = /bin/bash -c
a1.sources.r1.channels = c1
a1.sources.r1.command = tail -F /opt/apps/logs/tail4.log
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#sink
a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = mytopic
a1.sinks.k1.kafka.bootstrap.servers = localhost:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.ki.kafka.producer.compression .type = snappy
taill
注意:向被監控的檔案tail4.log 傳送資訊時, 切記不要使用 vi 命令,應該使用 echo 命令傳送,因為 vi 命令會產生檔案鎖,將檔案鎖住,此時tail 命令就不能及時的取出資訊,放入channel 也不能通過sink 傳送到kafka .