1如果要删除的topic正在被producer和consumer,则停止掉。因为如果有producer或者consumer,则topic的offest信息会在broker上更新,导致kafkadelete命令无法删除,同时需要设置auto.create.topics.enable=false,默认为true,如果设置为true,则producer或者fetch不存在的topic也会自动创建这个topic
2 server.propertise 设置delete.topic.enable=true
如果没有设置 delete.topic.enable=true,则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)
3 调用命令删除topic:
./bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】
4
删除kafka存储目录(server.properties文件log.dirs配置,默认为"/data/kafka-logs")相关topic的数据目录。
注意:如果kafka 有多个 broker,且每个broker 配置了多个数据盘(比如 /data/kafka-logs,/data1/kafka-logs ...),且topic也有多个分区和replica,则需要对所有broker的所有数据盘进行扫描,删除该topic的所有分区数据。
5 删除zk上的信息 rmr /brokers/topic
6 查看 ./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】