第一步:查看 kafka/config/server.properties 文件
delete.topic.enable=true #这一项必须为true
再查看
#这一项如果为false,就可以直接进行下面的操作 #如果为true,则必须将生产者停了,再进行下面的操作 auto.create.topics.enable = false
第二步:
进入到kafka的安装目录下
#查看topic是否存在 ./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】|grep 【topic名称】 #删除topic ./bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】 #再次查看topic ./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】|grep 【topic名称】 此时会看到 topic-marked for deletion 的情况
第三步:
进入到zookeeper的安装目录:
$ cd bin/ #启动zzookeeper的客户端 $ ./zkCli.sh (1) 找到topic所在的目录:ls /brokers/topics (2) 找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。 (3) 找到topic所在的另一个目录:ls /config/topics (4) 找到要删除的topic,执行命令:rmr /config/topics/【topic name】 (5) 另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】, 如果你删除了此处的topic,那么marked for deletion 标记消失 (6) 删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs") 相关topic目录 (7) 在zookeeper的客户端中 get /controller ,得到kafka的leader机器 (8) 重启kakfa即可 ps : 如果不重启kafka 则如果重建一模一样的topic,则不会再在log.dirs配置的目录下创建新的 topic的物理文件以及目录
来源:https://www.cnblogs.com/luminous-Xin/p/12165234.html