Kafka常用命令

kafka相关的常用命令

后台启动kafka

 kafka-server-start.sh /opt/app/kafka_2.11-1.1.0/config/server.properties > /dev/null 2>&1 &

关闭kafka

kafka-server-stop.sh 

创建topic

topic的添加和修改使用下面命令

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name --partitions 20 --replication-factor 3 --config x=y

副本(replication)j控制每条消息在服务器中的备份,如果有3个副本,那么允许最多有2个节点宕机才能不丢数据,集群中推荐设置2或3个副本,才不会中断数据消费。

分区(partition)控制topic将分片成多少log。关于分区数的影响,首先每个分区必须完全安装在独立的服务器上。因此,如果你有20个分区的话(读和写的负载),那么处理完整的数据集不要超过20个服务器(不计算备份)。最后的分区数影响你的消费者的最大并行。命令行上添加的配置覆盖服务器的默认设置。

例如,创建topic带有4个分区,2个副本

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 4 --topic test

修改删除topic

添加分区:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --partition 40

添加分区不能改变现有的数据,如果分区被使用中,这就可能扰乱消费者。如果数据通过哈希划分,那么该分区将通过添加分区进行洗牌,但kafka不以任何方式自动分配数据。

添加配置:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --config x=y

移除配置:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --deleteConfig x=y

删除topic:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name

主题删除选项默认是关闭的,设置服务器配置开启它。

delete.topic.enable=true

查看topic列表

kafka-topics.sh --list --zookeeper localhost:2181

查询集群描述

bin/kafka-topics.sh --describe --zookeeper localhost:2181  --topic my-replicated-topic

bin/kafka-topics.sh --describe --zookeeper localhost:2181  --topic my-replicated-topic

生产者(向topic写入数据)

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

生产者(支持0.9-1.1.1版本

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties

消费者(从topic消费数据)(0.9以下旧版写法),间接通过zookeeper端口2181消费数据

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test

消费者(支持0.9-1.1.1版本),直接通过kafka端口9092消费数据

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --new-consumer --from-beginning --consumer.config config/consumer.properties

消费者(支持2.0.0版本+),直接通过kafka端口9092消费数据

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test  --from-beginning --consumer.config config/consumer.properties

:“--new-consumer”已经不能使用啦

消费者组列表查询(支持0.9-1.1.1版本

bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --list

消费者组列表查询(支持2.0.0版本+

bin/kafka-consumer-groups.sh  --bootstrap-server localhost:9092 --list

显示某个消费组的消费详情(仅支持offset存储在zookeeper上的)

bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect localhost:2181 --group test

显示某个消费组的消费详情(支持0.9版本)

 bin/kafka-consumer-groups.sh  --bootstrap-server localhost:9092 --describe --group test-consumer-group

可能遇到的问题

kafka消费者查询出错:https://blog.csdn.net/getyouwant/article/details/79000524

参考资料:

http://orchome.com/454

http://orchome.com/30

posted @ 2018-01-15 00:21  牧梦者  阅读(1790)  评论(0编辑  收藏  举报