Kafka如何彻底删除topic及数据

我的kafka是CDH安装的默认目录  /opt/cloudera/parcels/KAFKA-4.1.0-1.4.1.0.p0.4

1、停止生产和消费程序。否则topic的offset信息会一直在broker更新。调用kafka delete命令则无法删除该topic。取消自动创建topic,设置 auto.create.topics.enable = false。

2、server.properties 设置 delete.topic.enable=true,否则调用kafka 的delete命令无法真正将topic删除,会显示(marked for deletion)

3、调用kafka命令:

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

例:./bin/kafka-topics --list --zookeeper 192.168.1.215:2181|grep  __consumer_offsets

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

例:./bin/kafka-topics --delete --zookeeper  192.168.1.215:2181 --topic __consumer_offsets

4、删除kafka存储目录

server.properties文件log.dirs配置(CDH中查找配置log.dirs),默认为 /app/kafka/data 相关topic的数据目录,如果kafka 有多个 broker,需要删除每个broker 的数据盘的topic的所有分区数据。

如果经过上面四步,还是无法正常删除topic,则需要对kafka在zookeeer的存储信息进行删除。

5、进入部署了zk的服务器,使用命令:
/opt/cloudera/parcels/CDH/lib/zookeeper/bin/zkCli.sh(路径)

bin/zkCli.sh -server 【zookeeper server:port】
登录到zk shell

topic所在的目录:ls /brokers/topics

删除topic命令:rmr /brokers/topics/【topic name】
如果topic 是被标记为 marked for deletion查看命令 ls /admin/delete_topics

删除topic命令(标记为marked for deletion):rmr /admin/delete_topics/【topic name】

(可选)删除topic在zk上面的消费节点记录、配置节点记录命令
rmr /consumers/【consumer-group】
rmr /config/topics/【topic name】

6、查看topic
./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】

如果还能够查询到删除的topic,重启zk和kafka即可。
————————————————
版权声明:本文为CSDN博主「chenxi5404」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenxi5404/article/details/118512339

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值