天天看點

大資料:開發運維必備常用的Kafka操作指令整理,可當速查手冊

作者:明少三年

之前我推薦了多個Kafka manager(or UI),web圖形化的Kafka管理工具是提升效率的利器。不過指令行的管理操作仍然是必知必會的。

對于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下的不同指令對于一些參數也沒有做到統一,如果報錯多檢視幫助。