有了之前的介绍,我们可以使用 Flume 和 Kafka 一起来完成项目日志输出到 kafka,然后编程消费者进行日志处理。
1、示例图
![](https://img.haomeiwen.com/i1089494/e511c3afcdf4977e.jpg)
下面蓝色的是我们需要修改的
2、配置 flume
在 A 机器上,(也可以在 C 机器上,这里为了方便) flume 中新增一个配置文件 avro-mem-kafka.conf
注意 bootstrap.servers 的写法,需要和版本对应
# Base
avro-mem-kafka.sources = avro-source
avro-mem-kafka.sinks = kafka-sink
avro-mem-kafka.channels = mem-channel
# Source
avro-mem-kafka.sources.avro-source.type = avro
avro-mem-kafka.sources.avro-source.bind = localhost
avro-mem-kafka.sources.avro-source.port = 44444
# Sink https://flume.apache.org/FlumeUserGuide.html#kafka-sink
avro-mem-kafka.sinks.kafka-sink.type = 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:9094
avro-mem-kafka.sinks.kafka-sink.kafka.topic=my-replicated-topic
# Channel
avro-mem-kafka.channels.mem-channel.type = memory
# Link
avro-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 机器上输入日志,将会看到消费者打印出
网友评论