Purge Kafka Topic
Temporarily update the retention time on the topic to one second:
kafka-topics.sh --zookeeper <zkhost>:2181 --alter --topic <topic name> --config retention.ms=1000
And in newer Kafka releases, you can also do it with kafka-configs --entity-type topics
kafka-configs.sh --zookeeper <zkhost>:2181 --entity-type topics --alter --entity-name <topic name> --add-config retention.ms=1000
then wait for the purge to take effect (about one minute). Once purged, restore the previous retention.ms
value.
To purge the queue you can delete the topic:
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
then re-create it:
bin/kafka-topics.sh --create --zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 --topic test
Here are the steps I follow to delete a topic named MyTopic
:
- Describe the topic, and take not of the broker ids
- Stop the Apache Kafka daemon for each broker ID listed.
- Connect to each broker, and delete the topic data folder, e.g.
rm -rf /tmp/kafka-logs/MyTopic-0
. Repeat for other partitions, and all replicas - Delete the topic metadata:
zkCli.sh
thenrmr /brokers/MyTopic
- Start the Apache Kafka daemon for each stopped machine
If you miss you step 3, then Apache Kafka will continue to report the topic as present (for example when if you run kafka-list-topic.sh
).
Tested with Apache Kafka 0.8.0.