I need to delete a topic in kafka-0.8.2.2.3. I have used the below command for deleting the topic:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic DummyTopic
The command executed successfully but when I run a command to list the topics, I could see that the topic is still there and it shows marked for deletion.
bin/kafka-topics.sh --list --zookeeper localhost:2181
DummyTopic - marked for deletion
And when I create the topic DummyTopic it outputs the exception, The topic already exists, below is the stack trace:
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)
Please let me know how can I delete this topic.
解决方案
Deletion of a topic has been supported since 0.8.2.x version. You have to enable topic deletion (setting delete.topic.enable to true) on all brokers first.
Follow this step by step process for manual deletion of topics
Stop Kafka server
Delete the topic directory with rm -rf command
Connect to Zookeeper instance: zookeeper-shell.sh host:port
ls /brokers/topics
Remove the topic folder from ZooKeeper using rmr /brokers/topics/yourtopic
Restart Kafka server
Confirm if it was deleted or not by using this command
kafka-topics.sh --list --zookeeper host:port