有了之前的介绍,我们可以使用 Flume 和 Kafka 一起来完成项目日志输出到 kafka,然后编程消费者进行日志处理。

示例图
下面蓝色的是我们需要修改的
在 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 https://flume.apache.org/FlumeUserGuide.html#kafka-sinkavro-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: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
在 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 &
这两个脚本都在 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
链接:https://www.jianshu.com/p/238a1fea8acb
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2819/viewspace-2815050/ ,如需转载,请注明出处,否则将追究法律责任。