【发布时间】:2016-02-05 21:32:33
【问题描述】:
我需要删除 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)
请告诉我如何删除此主题。
【问题讨论】:
-
Apache Kafka 永远不会删除标记为删除的主题,如果该主题的生产者仍在生产它,或者消费者仍在消费它,或者消息留在队列中。尝试强制它的一种方法是重新启动 Kafka。或者,如果这不起作用,请进入底层并删除 /var/local/kafka/data 下的主题名称目录,然后重新启动 Kafka,然后重新发出删除命令。我希望 Apache Kafka 有一个“nuke the bleeping topic”选项,这样开发人员就可以发出命令:“真的,这次真的要对 bleeping 主题进行核对,请不要吝啬”。
-
bin/kafka-topics.sh –delete –zookeeper localhost:2181 –topic
标签: java apache-kafka