本文以Kafka-Client命令行工具的Linux Shell脚本为例整理常用命令。
1.Topic管理
//创建topic
sh kafka-topics.sh --zookeeper <zkAddr>:2181 --create --topic <topicName> --partitions 3 --replication-factor 3 --config min.insync.replicas=3
//删除topic
sh kafka-topics.sh --zookeeper <zkAddr>:2181 --delete -topic <topicName>
//查看topic
sh kafka-topics.sh --zookeeper <zkAddr>:2181 --list
sh kafka-topics.sh --zookeeper <zkAddr>:2181 --describe --topic <topicName>
--topics-with-overrides 只列出包含与集群配置不一样的主题
--under-replicated-partitions 列出包含失败副本的分区
--unavailble-partitions 查看没有leader的分区(leader为-1)
//查看topic某分区偏移量最大/小值(time为-1表示最大值,-2表示最小值)
sh kafka-run-class.sh kafka.tools.GetOffsetShell --topic <topicName> --time -1 --broker-list <ipList> --partitions 0
2.生产消费
//生产消息
sh kafka-console-producer.sh --broker-list <ipList> --topic <topicName>
kafka-console-producer.sh生产大于4KB的消息,不能直接输入,会被截断,要把消息放到文本
cat <存放消息大于4KB的文本名称> | ./kafka-console-producer.sh --broker-list <ip>:<port> --topic <topicName>
//生产压测
sh kafka-producer-perf-test.sh --producer-props bootstrap.servers=<ipList> acks=1 batch.size=16384 linger.ms=10 --topic <topicName> -num-records 10000000 --record-size 1024 --throughput -1 --producer.config ../config/producer.properties
//消费消息
sh kafka-console-consumer.sh --bootstrap-server <ipList> --topic <topicName> --from-beginning
//消费压测
sh kafka-consumer-perf-test.sh --broker-list <ipList> --new-consumer --messages 10000000 --topic <topicName> --group <groupName> --show-detailed-stats --consumer.config ../config/consumer.properties
3.消费组管理
//查看消费组
sh kafka-consumer-groups.sh --bootstrap-server <ipList> --list
sh kafka-consumer-groups.sh --bootstrap-server <ipList> --describe --group <groupName>
//删除消费组
sh kafka-consumer-groups.sh --bootstrap-server <ipList> --delete --group <groupName>
//重置消费位置
sh kafka-consumer-groups.sh --bootstrap-server <ipList> --topic <topicName>:<partitionNum> --group <groupName> --reset-offsets --to-offset 0 --execute
sh kafka-consumer-groups.sh --bootstrap-server <ipList> --topic <topicName>:<partitionNum> --group <groupName> --reset-offsets --to-earliest --execute
4.消息相关
//查询topic日志信息
sh kafka-log-dirs.sh --bootstrap-server <ipList> --describe --topic-list <topicName>
//查看topic上的消息
sh kafka-run-class.sh kafka.tools.DumpLogSegments --files /data/<topicName>-<partitionNum>/<logName>.log --print-data-log
sh kafka-dump-log.sh --files /data/<topicName>-<partitionNum>/<logName>.log --print-data-log
//修改消息大小上限
sh kafka-configs.sh --bootstrap-server <ipList> --entity-type brokers --entity-name 0 --alter -add-config messages.max.bytes=1
sh kafka-topic.sh --zookeeper <zkAddr>:2181 --alter --topic <topicName> --config max.messages.bytes=1
5.acl相关
//查询acl信息
sh kafka-acls.sh --authorizer-properties zookeeper.connect=<zkAddr>:2181 --list
//添加acl信息
sh kafka-acls.sh --authorizer-properties zookeeper.connect=<zkAddr>:2181 --add --allow-principal <userName>:*
6.zookeeper相关
//登录Kafka自带的zk
sh zookeeper-shell.sh <zkAddr>:2181
//查看zk服务信息
sh kafka-run-class.sh org.apache.zookeeper.client.FourLetterWordMain <zkAddr> 2181 srvr