我需要删除kafka-0.8.2.2.3中的主题。我使用以下命令删除主题:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic DummyTopic
命令执行成功但当我运行命令列出主题时,我可以看到主题仍然存在,并显示标记为删除。
bin/kafka-topics.sh --list --zookeeper localhost:2181
DummyTopic - marked for deletion
当我创建主题DummyTopic时,它输出异常,主题已经存在,下面是堆栈跟踪:
Error while executing topic command Topic "DummyTopic" already exists.
kafka.common.TopicExistsException: Topic "DummyTopic" already exists.
at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:248)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:233)
at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:92)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:54)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
请告诉我如何删除此主题。
答案 0 :(得分:76)
自0.8.2.x版本起,支持删除主题。您必须首先在所有代理上启用主题删除(将delete.topic.enable
设置为true)。
注意:自1.0.x以来,功能稳定,delete.topic.enable
默认为true
。
按照此步骤手动删除主题
rm -rf
命令zookeeper-shell.sh host:port
ls /brokers/topics
rmr /brokers/topics/yourtopic
kafka-topics.sh --list --zookeeper host:port