Java 如何删除apache kafka中的主题
我需要删除kafka-0.8.2.2.3中的一个主题。我已使用以下命令删除主题:Java 如何删除apache kafka中的主题,java,apache-kafka,Java,Apache Kafka,我需要删除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 当
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.8.2.x版本以来,支持删除主题。您必须首先在所有代理上启用主题删除(将
delete.topic.enable
设置为true)
注意:从1.0.x开始,功能稳定,delete.topic.enable
默认为true
按照此步骤手动删除主题
rm-rf
命令删除每个代理上的主题目录(定义见logs.dirs
和log.dir
属性)Zookeeper-shell.sh主机:端口
ls/brokers/topics
rmr/brokers/topics/yourtopic
kafka-topics.sh--列表--zookeeper主机:端口
Apache Kafka从不删除标记为删除的主题,如果该主题的制作者仍在制作该主题,或者消费者仍在使用该主题,或者消息仍挂在队列中。一种试图强迫它的方法是重启卡夫卡。或者,如果这不起作用,请在引擎盖下删除/var/local/kafka/data下作为主题名的目录,然后重新启动kafka,然后重新发出Delete命令。我希望Apache Kafka有一个“nuke the bleeping topic”选项,这样开发人员就可以发出命令:“真的,这次要真正nuke the bleeping topic no sass please”。bin/Kafka-topics.sh–delete–zookeer localhost:2181–topic链接断开了!“/brokers/topics”目录在哪里?似乎找不到folderUse
zookeeper shell.sh
来访问zookeeper和ls/brokers/topics
注意:如果您使用--delete from kafka-topics.sh-->,请确保没有消费者运行-->并在所有kafka代理的server.properties文件中设置“delete.topic.enable:true”。我不敢相信删除一个主题会如此困难