彻底删除Kafka中的topic

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

2、Kafka 删除topic的命令是:

   ./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

   如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

   你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic

  此时你若想真正删除它,可以登录zookeeper客户端:

  命令:./bin/zookeeper-client

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

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

 另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,如果你删除了此处的topic,那么marked for deletion 标记消失

zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用

 3、创建zk节点信息(解决leader:none问题)

    首先执行命令:bin/kafka-topics.sh --zookeeper zkhost:port --describe --topic topic_name,会发现这时leader为none,isr为空。但Replicas的数据都还在,若Replicas也没有数据,那么下面的方法就不适合你了[哈哈哈哈哈哈...]。

然后在zookeeper的client里面执行下面的代码即可:
create /kafka/brokers/topics/$topic_name/partitions null

create /kafka/brokers/topics/$topic_name/partitions/0 null
create /kafka/brokers/topics/$topic_name/partitions/1 null
...
create /kafka/brokers/topics/$topic_name/partitions/0/state {"controller_epoch":38,"leader":1,"version":1,"leader_epoch":0,"isr":[1,3,4]}
create /kafka/brokers/topics/$topic_name/partitions/1/state {"controller_epoch":38,"leader":2,"version":1,"leader_epoch":0,"isr":[2,4,5]}
...

其中$topic_name替换为需要修复的topic name;controller_epoch可以通过在zkCli.sh里面执行get /kafka/controller_epoch命令得到;version默认1即可;leader_epoch默认0即可;isr的值和前面命令中得到的Replicas值一致即可;然后最重要的leader的值等于Replicas数组的第1个值即可。

=====================================================

Kafka 删除topic的命令是:


   ./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】
   ./bin/kafka-topics.sh --delete --zookeeper 10.40.6.173:2181,10.40.6.174:2181,10.40.6.203:2181 --topic pdm


   如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion


   你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic
   ./bin/kafka-topics.sh --zookeeper 10.40.6.173:2181,10.40.6.174:2181,10.40.6.203:2181 --list


  此时你若想真正删除它,可以登录zookeeper客户端:


  命令:./bin/zookeeper-client


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


  找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。
  
--查看topic详情
./kafka-topics.sh --topic rosegal --describe --zookeeper 10.40.6.170:2182



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值