总结最近用到的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掉进程就行。
经常总结才能进步,每天进步一点点就可以了。