kafka中查询与删除topic

1、查询kafka中的topic

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

2、删除指定的topic

1)方法1:使用kafka命令删除

kafka-topics.sh --delete --zookeeper 192.168.23.190 --topic mytopic
kafka-topics.sh --list --zookeeper 192.168.23.190:2181  (再次查询是否删除)

1)方法2:去zookeeper中删除

zkCli.sh

ls /brokers/topics
rmr /brokers/topics/mytopic

ls /config/topics
rmr /config/topics/mytopic

ls /admin/delete_topics
rmr /admin/delete_topics/mytopic

进入到kafka的log.dirs(server.properties中有配置)的路径中删除对应的数据(如:mytopic-0)

注意:1、使用方法1中kafka命令删除时后,log.dirs中的数据会首先标记为mytopic-0.78d282e0f72c4804b2eaa0c3c434b656-delete
过几秒中后kafka会自动删除该日志数据,所以推荐方法1删除topic,省略了一步
2、方法2相对于方法1除了不能主动删除日志数据外,它俩是相同的,即在kafka中删除后,同时zookeeper中也被删除了,反之亦然

3、说明

1)有些版本需要在server.properties中添加delete.topic.enable=true(我用的kafka_2.11-2.1.1不需要)

2)使用方法1删除,出现如下提示是正常的,查询结果topic不显示(marked for deletion)即可

Topic topic_deal is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

3)执行删除命令,需要关闭topic与之对应的生产者和消费者

4)如果还是无法删除,就重启kafka和zookeeper再执行删除

 

posted @ 2022-11-05 17:57  雷雨客  阅读(3210)  评论(0编辑  收藏  举报