前言
鉴于kafka是中间件,而且它提供了一些shell命令来让我们使用。那么我就来介绍下kafka的各个命令是做什么的,常用操作有哪些。
正文
命令
进入kafka的安装目录,进到bin目录下,我们发现它有很多二进制命令。常用的有以下几类:
1 管理zookeeper的脚本
zookeeper-server-start.sh
zookeeper-server-stop.sh
zookeeper-shell.sh
2 管理kafka服务的脚本
kafka-server-start.sh
kafka-server-stop.sh
3 管理kafka各topic的脚本
kafka-topics.sh
4 管理生产者、消费者情况的脚本
kafka-console-producer.sh
kafka-console-consumer.sh
kafka-consumer-groups.sh
还有很多,但是我就不是很熟了。所以我会针对以上几类做出使用样例来。
使用场景
-
启动zk和kafka。鉴于启动kafka的前提是启动zk,所以我们需要先启动zk,后启动kafka。
nohup sh zookeeper-server-start.sh ../config/zookeeper.properties > /var/log/zookeeper.log & nohup sh kafka-server-start.sh ../config/server.properties > /var/log/kafka.log &
二者用的都是后台启动,通过指定特定的配置文件进行启动,且都将日志输出到了/var/log/下的日志文件中。
-
创建、删除topic
#创建topic sh kafka-topics.sh --zookeeper localhost:2181 --create --topic test_topic --partitions 30 --replication-factor 2 #删除topic sh bin.kafka-topics.sh --zookeeper localhost:2181 --delete --topic test_topic
-
查看所有topic信息
sh kafka-topics.sh --zookeeper localhost:2181 --list
-
查看特定topic信息
sh kafka-topics.sh --zookeeper localhost:2181 --topic test_topic
-
kafka查看consumer group状态
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group mygroup --describe
-
控制台消费topic的数据
sh kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_topic --from-beginning
-
控制台想topic生产数据
sh kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
-
kafka清除分区的offset
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_topic --reset-offsets --all-topics --to-latest --execute ##清理kafka分区的offset的前提是无应用占用此分区,否则会有下面的报错 Error: Assignments can only be reset if the group 'real_time_product_group' is inactive, but the current state is Stable.
About me: 资深大猪蹄子