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再执行删除