第一步:配置delete.topic.enable=true (所有节点都要配置)
修改kafaka配置文件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
这样就成功了
原文:https://www.cnblogs.com/llody/p/14790650.html