背景
生产环境0.9.0 版本kafka,一个kafka topic name 拼写异常,须删除。假设队列名为 test。
查看相关资料,broker 须设置delete.topic.enable=true .在新版本kafka 2.6 版本中,这个参数默认已经是 true,但在0.9.0 版本需要手动设置为true,根据实际测试效果,0.9.0 版本默认为false。官网上暂未找到关于0.9.0 版本的说明。
delete.topic.enable
Enables delete topic. Delete topic through the admin tool will have no effect if this config is turned off
Type: boolean
Default: true
Valid Values:
Importance: high
Update Mode: read-only
修改后重启所有broker,执行命令删除topic ,可以发现该topic已删除
kafka-topics.sh --zookeeper ip:port --delete --topic test
如果不想修改所有broker 的配置并重启,可以采用如下步骤
一、删除topic
1、kafka manager 删除 topic
2、kafka-topics.sh --zookeeper ip:port --delete --topic test
二、删除kafka 数据
1、删除kafka里 /data/kafak/logs/test-0 ,具体路径为 log.dirs 配置的消息路径
删除zk数据的时候会提示 is busy,删除不掉,需要停止当前broker 再删除,其余未存放topic数据的brokers无须重启
/data/kafka/bin/kafka-server-stop.sh
三、删除zk节点的数据
rmr /admin/delete_topics/test
rmr /config/topics/test
rmr /brokers/topics/test
四、检查
再次查看topic list ,将看到已经没有了 test
kafka-topics.sh --zookeeper <zkhost>:<zkport> --list