linux 怎样查看kafka的某 topic数据

2020-06-12 20:15发布

16条回答
安之
2021-09-15 17:13

1.文档编写目的

在我们的应用程序消费Kafka的Topic消息时,我们会关注Topic中消息总量以及消费情况,那接下来Fayson就主要介绍下如何在CDH集群中使用命令行的方式查看Topic的消费情况。

本次Fayson的测试环境为

1.CM和CDH版本为5.15

2.Redhat7.4

3.Kafka 0.10.2+kafka2.2.0

2.命令行查看

在Kafka的脚本里提供了kafka-run-class.sh的脚本,使用该脚本查看Consumer组内消费Topic的Offset情况。

bfff086ae510138ac3f25ea5ceb5249c.png

1.在命令行执行如下命令查看指定Topic及ConsumerGroup的消费情况

[root@cdh01 bin]# kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper cdh01.fayson.com:2181 --group test --topic kafka_kudu_topic_offset_3

第一次执行查看到kafka_kudu_topic_offset_3的testgroup组各个Partition的Offset消费情况以及每个Partition的总消息量。

9be806156d651386313e45391757b5c1.png

2.kafka_kudu_topic_offset_3的Topic发送600条消息,再次执行命令查看消费情况

206cbbe0f9e303b48d7b95f5d748292e.png

此时没有消费的应用运行,可以看到Offset的数据未发生变化,而logSize的数据量有增加,每个partition的数量增加200条,刚好为我发送的消息数量。

3.启动消费程序消费Topic的消息,再次执行命令查看消费情况

2e0f89f34fc43a6b932d056017c3fd60.png

在消费应用运行时,每个Partition的Offset数据发生变化,此时的Offset的数据与logSize的数据一致,在应用日志中也无新的消息接收,说明Topic的消息已被testgroup组消费完。

3.总结

查看某个Topic指定组的消息消费情况计算方式:

消费的消息量计算方式:

topic_partition1 offset + topic_partition2 offset +… + topic_partition_n offset

Topic总消息数量计算方式:

topic_partition1 logSize + topic_partition2 logSize +… + topic_partition_n logSize

未消费消息数量计算方式:

Topic总消息数量-消费的消息量

提示:代码块部分可以左右滑动查看噢


一周热门 更多>