kafka完全删除topic

第一步:查看   kafka/config/server.properties   文件

delete.topic.enable=true    #这一项必须为true

再查看

#这一项如果为false,就可以直接进行下面的操作
#如果为true,则必须将生产者停了,再进行下面的操作
auto.create.topics.enable = false  

第二步:

进入到kafka的安装目录下

#查看topic是否存在
./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】|grep  【topic名称】

#删除topic
./bin/kafka-topics.sh --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】

#再次查看topic
./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】|grep  【topic名称】

此时会看到
topic-marked for deletion  的情况

第三步:

进入到zookeeper的安装目录:

$  cd  bin/
#启动zzookeeper的客户端
$  ./zkCli.sh

(1) 找到topic所在的目录:ls /brokers/topics

(2) 找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

(3) 找到topic所在的另一个目录:ls /config/topics

(4) 找到要删除的topic,执行命令:rmr /config/topics/【topic name】

(5)     另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

    如果你删除了此处的topic,那么marked for deletion 标记消失

(6) 删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs") 相关topic目录

(7)  在zookeeper的客户端中   get  /controller  ,得到kafka的leader机器

(8)  重启kakfa即可

ps  :   如果不重启kafka  则如果重建一模一样的topic,则不会再在log.dirs配置的目录下创建新的  topic的物理文件以及目录
posted @ 2020-01-08 10:25  小怪兽他爹爹  阅读(503)  评论(0编辑  收藏  举报