總結最近用到的kafka相關命令和腳本。
1、創建Topic
./kafka-topics.sh --zookeeper cc13-141:2182 --topic mytopic --replication-factor 1 --partitions 1 --create
2、Topic列表
./kafka-topics.sh --zookeeper cc13-138:2181 --list
3、創建生產者
./kafka-console-producer.sh --broker-list cc13-141:9092 --topic mytopic
4、創建消費者
./kafka-console-consumer.sh --zookeeper c13-138:2181 --topic mytopic
--from-beginning 每次都是從開始位置消費,在生產環境下不建議這樣使用。
5、查看指定topic
./kafka-topics.sh --describe --zookeeper c13-138:2181 --topic mytopic
6、刪除topic
./kafka-topics.sh --delete --zookeeper c13-138:2181--topic mytopic
7、顯示出Consumer的Group、Topic、分區ID、分區對應已經消費的Offset、logSize大小,Lag以及Owner等信息。
使用腳本:kafka-consumer-offset-checker.sh
./kafka-consumer-offset-checker.sh --zookeeper c13-138:2181,c13-139:2181,c13-141:2181 --topic mytopic --group xb_id --broker-info
8、有時候我們需要驗證日志索引是否正確,或者僅僅想從log文件中直接打印消息。
使用腳本:kafka-run-class.sh
./kafka-run-class.sh kafka.tools.DumpLogSegments
./kafka-run-class.sh kafka.tools.DumpLogSegments /nodedata/kafka/kafka-logs/xb_topic-0/00000000000000000033.log
./kafka-run-class.sh kafka.tools.DumpLogSegments --files /nodedata/kafka/kafka-logs/xb_topic-0/00000000000000000033.log --print-data-log
9、導出Zookeeper中Group相關的偏移量。有時候我們需要導出某個Consumer group各個分區的偏移量。
使用腳本:kafka-run-class.sh
./kafka-run-class.sh kafka.tools.ExportZkOffsets
./kafka-run-class.sh kafka.tools.ExportZkOffsets --group xb_id --zkconnect c13-138:2181,c13-139:2181,c13-141:2181 --output-file ~/offset
vim ~/offset
10、這個工具主要作用是從一個Kafka集群里面讀取指定Topic的消息,並將這些消息發送到其他集群的指定topic中。
使用腳本:./kafka-replay-log-producer.sh
11、kafka-simple-consumer-shell.sh工具主要是使用Simple Consumer API從指定Topic的分區讀取數據並打印在終端。
使用腳本:./kafka-simple-consumer-shell.sh --broker-list c13-141:9092 --topic mytopic --partition 0
12、kafka.tools.UpdateOffsetsInZK工具可以更新Zookeeper中指定Topic所有分區的偏移量,可以指定成 earliest或者latest
使用工具:./kafka-run-class.sh kafka.tools.UpdateOffsetsInZK
最后再注意kafka的啟動和停止。
啟動kafka: ./kafka-server-start.sh /kafka/config/server.properties >/dev/null 2>&1 &
停止kafka: 直接kill掉進程就行。
經常總結才能進步,每天進步一點點就可以了。