第一步:配置delete.topic.enable=true (所有節點都要配置)
修改kafka配置文件server.properties, 添加delete.topic.enable=true,重啟kafka,之后通過kafka命令行就可以直接刪除topic
重啟kafka集群,並查看配置文件生效
第二步:編寫腳本(kfaka_topic_delete.sh)
#!/bin/bash
#通過過濾,找到需要批量刪除的topic,我的是51開頭的。 #ID='/usr/hdp/3.1.4.0-315/kafka/bin/kafka-topics.sh --zookeeper 192.168.1.214:2181 --list | grep 51' for i in $(/usr/hdp/3.1.4.0-315/kafka/bin/kafka-topics.sh --zookeeper 192.168.1.214:2181 --list | grep 51); do /usr/hdp/3.1.4.0-315/kafka/bin/kafka-topics.sh --zookeeper 192.168.1.214:2181,192.168.1.215:2181,192.168.1.216:2181 --delete --topic $i echo $i done
第三步:給腳本添加執行權限
chmod +x kfaka_topic_delete.sh
第四步:等待並查看就行
就算添加delete.topic.enable=true了,執行腳本一樣會爆
Topic 511424_3.dbo.work_log is marked for deletion. Note: This will have no impact if delete.topic.enable is not set to true
這樣就成功了