如果只是用kafka-topics.bat的delete命令删除topic,会有两种情况

1.如果当前topic没有使用过即没有传输过信息:可以彻底删除
2.如果当前topic有使用过即有过传输过信息:并没有真正删除topic只是把这个topic标记为删除(marked for deletion)

以下是解决第二种情况:

1.查看topic:

.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list

如果是集群,配置kafka中server.properties添加:delete.topic.enable=true

2.删除kafka中的topic

.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --delete --topic topic_name

手动删除logdir路径下,对应的topic_name文件夹。

3.打开zookeeper客户端:

4.删除以下路径的topic:

ls /config/topics

rmr /config/topics/topic_name

ls /consumers

ls /brokers/topics

rmr /brokers/topics/topic_name

ls /admin/delete_topics

rmr /admin/delete_topics/topic_name

5.重启zookeeper和kafka,查看全部的topic看是否删除:

.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list

 

 

 

 

 

 

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐