溫馨提示:如果使用電腦檢視圖檔不清晰,可以使用手機打開文章單擊文中的圖檔放大檢視高清原圖。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代碼塊部分可以左右滑動檢視噢
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情況。

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的總消息量。
2.kafka_kudu_topic_offset_3的Topic發送600條消息,再次執行指令檢視消費情況
此時沒有消費的應用運作,可以看到Offset的資料未發生變化,而logSize的資料量有增加,每個partition的數量增加200條,剛好為我發送的消息數量。
3.啟動消費程式消費Topic的消息,再次執行指令檢視消費情況
在消費應用運作時,每個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總消息數量-消費的消息量
提示:代碼塊部分可以左右滑動檢視噢
為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。
溫馨提示:如果使用電腦檢視圖檔不清晰,可以使用手機打開文章單擊文中的圖檔放大檢視高清原圖。
推薦關注Hadoop實操,第一時間,分享更多Hadoop幹貨,歡迎轉發和分享。