大資料03-整合 Flume 和 Kafka 收集日誌

m53469發表於2021-09-09

有了之前的介紹,我們可以使用 Flume 和 Kafka 一起來完成專案日誌輸出到 kafka,然後程式設計消費者進行日誌處理。

1、示例圖

圖片描述

示例圖


下面藍色的是我們需要修改的

2、配置 flume

在 A 機器上,(也可以在 C 機器上,這裡為了方便) flume 中新增一個配置檔案 avro-mem-kafka.conf
注意 bootstrap.servers 的寫法,需要和版本對應

# Baseavro-mem-kafka.sources = avro-source
avro-mem-kafka.sinks = kafka-sink
avro-mem-kafka.channels = mem-channel# Sourceavro-mem-kafka.sources.avro-source.type = avro
avro-mem-kafka.sources.avro-source.bind = localhost
avro-mem-kafka.sources.avro-source.port = 44444# Sink   = org.apache.flume.sink.kafka.KafkaSink
avro-mem-kafka.sinks.kafka-sink.kafka.bootstrap.servers=PLAINTEXT://192.168.31.122:9092,PLAINTEXT://192.168.31.122:9093,PLAINTEXT://192.168.31.122:9094avro-mem-kafka.sinks.kafka-sink.kafka.topic=my-replicated-topic# Channelavro-mem-kafka.channels.mem-channel.type = memory# Linkavro-mem-kafka.sources.avro-source.channels = mem-channel
avro-mem-kafka.sinks.kafka-sink.channel = mem-channel

啟動 Kafka

在 C 機器上先啟動 ZK,再啟動 Kafka 叢集

zkServer.sh start

kafka-server-start.sh $KAFKA_HOME/config/server.properties &
kafka-server-start.sh $KAFKA_HOME/config/server-1.properties &
kafka-server-start.sh $KAFKA_HOME/config/server-2.properties &

啟動 flume

這兩個指令碼都在 A 機器上執行,也可以分開

$ bin/flume-ng agent --conf $FLUME_HOME/conf 
--conf-file $FLUME_HOME/conf/avro-mem-kafka.conf 
--name avro-mem-kafka 
-Dflume.root.logger=DEBUG,console 
-Dorg.apache.flume.log.printconfig=true 
-Dorg.apache.flume.log.rawdata=true$ bin/flume-ng agent --conf $FLUME_HOME/conf 
--conf-file $FLUME_HOME/conf/exec-mem-avro.conf 
--name exec-mem-avro 
-Dflume.root.logger=DEBUG,console 
-Dorg.apache.flume.log.printconfig=true 
-Dorg.apache.flume.log.rawdata=true

開啟消費者

kafka-console-consumer.sh --bootstrap-server PLAINTEXT://192.168.31.122:9092,PLAINTEXT://192.168.31.122:9093,PLAINTEXT://192.168.31.122:9094 --from-beginning --topic my-replicated-topic

在 A 機器上輸入日誌,將會看到消費者列印出



作者:breezedancer
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2815050/,如需轉載,請註明出處,否則將追究法律責任。

相關文章