上两篇在sparkStreaming从kafka消费数据时,想查看一下kafka里的数据被消费到哪里了,需要一个监控工具:KafkaOffsetMonitor
这个工具可以监控zk, 也可以参考kafka的__consumer_offsets topic,来获取目标topic的读取offset(前提是使用__consumer_offsets topic来存储目标topic的offset, Flume-Kafka-SparkStreaming实战第二篇正是使用__consumer_offsets记录的目标topic的offset)
KafkaOffsetMonitor的github地址:
https://github.com/quantifind/KafkaOffsetMonitor
就是一个jar,
最简单的例子:
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk hadoop2:2181,hadoop3:2181,hadoop4:2181 \
--port 8084 \
--refresh 5.seconds \
--retain 2.days
这几个通用参数 port是监控web服务端口号,其他参数参考github参数描述
可以弄个脚本:
vim kafka-monitor-start.sh
#!/bin/bash
java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--port 8084 \
--zk hadoop2:2181,hadoop3:2181,hadoop4:2181 \
--refresh 1.minutes \
--retain 1.day
然后以这种方式启动
. kafka-monitor-start.sh 1>>~/kafka_offset_monitor.txt 2>>~/kafka_offset_monitor_err.txt
web访问地址:
http://hadoop2:8084/
上图消费组
上图消费组详情 --- 消费的什么topic,分区信息,topic分布在哪些broker上
上图---kafka里的topic, 红圈是kafka自己的,我们把消费目标topic的offset也存放在这个系统自带topic里
领取专属 10元无门槛券
私享最新 技术干货