kafka 删除topic 不成功

当尝试通过kafka命令删除Topic时遇到失败。问题可能在于`delete.topic.enable`配置未启用或生产者与消费者仍在运行。解决方案包括:1)修改`server.properties`设置`delete.topic.enable=true`并重启Kafka;2)在不修改配置的情况下,先停止生产者和消费者,再删除Topic;3)处理Zookeeper中的残留数据。极端情况下,可能需要更改Kafka在Zookeeper的根目录和数据存储路径。
摘要由CSDN通过智能技术生成

前言: 利用kafka命令删除topic不成功。

kafka-topics.sh --zookeeper *.192.0.128:2181/kafka_yes --delete --topic test

原因&解决方式

  1. 配置文件未将delete.topic.enable=true,导致删除命令未及时生效;

解决方式:

第一种:找到conf目录下server.properties配置文件,修改delete.topic.enable=true,代表删除立即生效;

[root@node3a1 config]$ vi server.properties delete.topic.enable=true 修改配置后,需要重启kafka服务;
如果是cloudera 页面管理的kafka配置,需要点击delete.topic.enable 这个配置打对号

第二种:不修改delete.topic.enable=true配置文件的情况下,删除命令执行后,重启kafka服务,也可以使主题删除成功;
  1. 配置文件已经设置delete.topic.enable=true,删除命令执行后,还能看到topic名称;
    原因:生产者和消费者并未停止执行,导致虽然删除了topic,但是生产者或者消费者运行时,立刻重新创建了topic,视觉显示删除未成功,此时可以通过消费topic内的数据进行查看,如果之前是带有数据的topic,在执行删除命令后,发现topic内的数据已经消失了。
    解决方式:先停止生产者和消费者的运行,再执行kafka删除命令;
  2. 配置文件已经设置delete.topic.enable=true 生产者,消费者已经停止,kafka topic 名称依然存在,无法删除,删除时显示topic marked delete 、describe topic 时 leader = -1 、isr 为空、底层数据已经被删除。
    在这里插入图片描述
    解决方法:

1> zookeeper 底层删除 topic ,

打开ZKcli.sh -server node0a128:2181 、
ls /kafka_yes/brokers/topics  可以看到topic 名称
rmr /kafka_yes/brokers/topics/"topicname"  删除topic
ls /kakfa_yes/admin/deletetopic  可以看到要删除的topic

2> zookeeper 底层无法删除
当底层无法删除topic时,删除时报 未认证
!!!有个根本的解决方法有点暴力但非常好使,使用时请慎重
更改kafka在zookeeper的根目录路径,和kafka 数据磁盘存放路径。

  1. 更改前一定要看看有没有topic 有没有堆积 当然紧急的情况下也就不用考虑
  2. 更改前要保证kafka自动创建topic auto.create.topic = true,cloudera中一般默认自动创建,更改其创建的分区数,和副本数目然后重启kafka
  3. 这个类似 重新创建了个集群,打开生产者与消费者就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值