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>