Kafka實踐之常用命令

Topic

新建Topic

bin/kafka-topics.sh --zookeeper <zookeeper connect> --create --topic <string> --replication-factor <integer> --partitions <integer>

刪除Topic

bin/kafka-topics.sh --zookeeper <zookeeper connect> --delete --topic <string>

查看Topic列表

bin/kafka-topics.sh --zookeeper <zookeeper connect> --list

查看所有Topic的詳細信息

bin/kafka-topics.sh --zookeeper <zookeeper connect> --describe

增加Partition個數

bin/kafka-topics.sh --zookeeper <zookeeper connect> --alter --topic <string> --partitions <integer>

查看指定Topic的詳細信息

bin/kafka-topics.sh --zookeeper <zookeeper connect> --describe --topic <string>

相比於上一條查看所有topic的信息命令,查看指定topic的信息具有更切實的實際作用,更有利於在實際工作中快速定位和發現問題(推薦使用)。通過該命令可以查看給定Topic的分區、副本集個數;以及各分區、副本集的實際分佈情況,同時還可以看到每個分區的ISR列表信息(有關ISR介紹可詳見ISR)。通過該命令可以根據各Partition的ISR情況分析Broker狀況。執行結果如下所示
在這裏插入圖片描述

查看副本集同步出現異常的分區

bin/kafka-topics.sh --zookeeper <zookeeper connect> --describe --under-replicated-partitions

查看缺失leader的分區

bin/kafka-topics.sh --zookeeper <zookeeper connect> --describe --unavailable-partitions

查看Topic各Partition的offset極值

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list  <address:port> --topic <string> --time <param>

time參數詳解

-1:查看Partition的最大Offset,即就是latest
-2:查看Partition的最小Offset,即就是earlist
timestamp:查詢指定時間戳以後的所有消息中最早的一條消息的offset值;Eg:1546272000000

Consumer Group

因爲Consumer的版本有新舊之分,且舊版本(Scala)的Consumer Client是依賴於Zookeeper來保存Offset的,而新版本(Java)的則基於內置的topic(__consumer_offsets )來保存offset,所以在使用Group相關命令時,必須根據實際情況確定Consumer的版本,即就是:舊版本的查詢只需要指定Zookeeper參數即可,而新版本的查詢需要指定–new-consumer參數的同時,指定bootstrap-server參數

查看Group列表

bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <address:port> --list

查看指定Group下各Topic對應Partition的實際消費情況

bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <address:port> --group <name> --describe

通過該命令可以瞭解到給定Group下每個Topic各Partition的最大Offset值,當前所處的消費位置;還顯示出當前Partition所操作的客戶端信息,LAG表示消費滯後的情況;執行結果如下所示:

在這裏插入圖片描述

Console Option

##控制檯消費數據

舊版本消費

bin/kafka-console-consumer.sh --zookeeper <zookeeper connect> --topic <string> --from-beginning

新版本消費

bin/kafka-console-consumer.sh --bootstrap-server <address:port> --topic <string> --from-beginning

控制檯生產數據

bin/kafka-console-producer.sh --broker-list <address:port> --topic <string>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章