之前我推薦了多個Kafka manager(or UI),web圖形化的Kafka管理工具是提升效率的利器。不過指令行的管理操作仍然是必知必會的。
對于Kafka的操作指令,我進行了如下的總結:
操作導圖
前提條件:如下的操作都需要在Kafka安裝部署目錄内操作(或者絕對路徑也闊以)。
叢集、伺服器運維類型
前台啟動:
bin/kafka-server-start.sh ../config/server.properties
-daemon 以背景的方式啟動:
bin/kafka-server-start.sh -daemon ../config/server.properties
指定JMX port端口啟動:
指定jmx用來監控kafka叢集,jmx的port可以靈活配置,我配置的是9999。
JMX_PORT=9999 nohup ./kafka-server-start.sh ../config/server.properties > kfk_service.log 2>&1 &
or
JMX_PORT=9999 ./kafka-server-start.sh -daemon ../config/server.properties
查詢讀取操作類型
topic相關
檢視幫助:
bin/kafka-topics.sh --help
檢視目前叢集的topic清單:
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} --list
檢視指定的topic詳細資訊:
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} -describe -topic {您的topic名稱}
檢視叢集所有topic的詳細資訊:
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} --describe
檢視指定topic各個分區消息的資料量:
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list {您的kafka broker:port list} --topic {您的topic名稱} --time -1
檢視指定topic的log日志消息内容:
我這個topic的log存儲路徑是“/data/kafka24-logs000/canal_test-0/”
bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /data/kafka24-logs000/canal_test-0/00000000000000473378.log --print-data-log
檢視指定topic某個消費組對應的offset:
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --topic {您的topic名稱} --bootstrap-server {您的kafka broker:port} --group {您的消費組名稱}
檢視指定topic最舊offset(earliest):
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list {您的kafka broker:port list} --topic {您的topic名稱} --time -2
檢視指定topic最新offset(latest):
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list {您的kafka broker:port list} --topic {您的topic名稱} --time -1
消費者相關
檢視topic某個消費組對應的offset:
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --topic {您的topic名稱} --bootstrap-server {您的kafka broker:port} --group {您的消費組名稱}
檢視叢集所有消費者群組:
bin/kafka-consumer-groups.sh --bootstrap-server {您的kafka broker:port} --list
查詢某個消費組的消費詳細資訊:
bin/kafka-consumer-groups.sh --bootstrap-server {您的kafka broker:port} --describe --group {您的消費組名稱}
寫操作類型
topic相關
建立指定topic:
這裡帶了若幹參數的指定,可以不帶參數
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} --create --topic {您的topic名稱} --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1
修改topic配置:添加分區數為3個(注意隻能+,不能-):
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} --alter --topic {您的topic名稱} --partitions 3
删除指定topic:
bin/kafka-topics.sh --bootstrap-server {您的kafka broker:port} --delete --topic {您的topic名稱}
生産者相關
生産消息(用來測試):
bin/kafka-console-producer.sh --broker-list {您的kafka broker:port list} --topic {您的topic名稱}
消費者相關
删除消費者群組:
bin/kafka-consumer-groups.sh --bootstrap-server {您的kafka broker:port} --delete --group {您的消費組名稱}
删除消費者群組中的topic:
bin/kafka-consumer-groups.sh --bootstrap-server {您的kafka broker:port} --delete --group {您的消費組名稱} --topic {您的topic名稱}
小結
知曉Kafka的版本是重要的,版本不同,指令操作也有差異、淘汰、更新。另外即使同一個版本的bin下的不同指令對于一些參數也沒有做到統一,如果報錯多檢視幫助。