首页 > 代码库 > kafka 和 zookeeper 常用命令记录

kafka 和 zookeeper 常用命令记录

启动zookeeper

zkServer.sh start

 

启动kafka服务器

kafka-server-start.sh /software/kafka_2.10-0.10.2.1/config/server.properties

 

后台启动

kafka-server-start.sh -daemon /software/kafka_2.10-0.10.2.1/config/server.propertie

 

创建 topic

kafka-topics.sh --create --zookeeper master:2181 --replication-factor 2 --partitions 1 --topic test

 

查看topic

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

 

Send messages

kafka-console-producer.sh --broker-list master:9092 --topic test

 

启动客户端

kafka-console-consumer.sh --zookeeper master:2181 --topic test --from-beginning

 

删除topic

kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

 

来查看所有topic

kafka-topics --zookeeper 【zookeeper server】 --list 

 

 查看topic明细:

kafka-topics.sh --describe --zookeeper master:2181 --topic test

 

修改topic参数:

kafka-topics.sh --zookeeper master:2181 --partition 4 --topic test --alter

 

永久删除topic

kafka-topics.sh --zookeeper master:2181 --delete --topic test

 

删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录 

删除zookeeper "/brokers/topics/"目录下相关topic节点

cd /usr/lib/zookeeper,或 cd <zookeeper安装目录>

zkCli.sh

ls /brokers/topics/

rmr /brokers/topics/test

rmr /admin/delete_topics/

 

另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:

  ls /admin/delete_topics/【topic name】,

  如果你删除了此处的topic,那么marked for deletion 标记消失

 

zookeeper 的config中也有有关topic的信息:

ls /config/topics/【topic name】暂时不知道有什么用


总结:

彻底删除topic:

 1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

 2、如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。

 

kafka 和 zookeeper 常用命令记录