彻底删除kafka下面的topic

如果只是用kafka-topics.sh的delete命令删除topic,会有两种情况:

  1. 如果当前topic没有使用过即没有传输过信息:可以彻底删除
  2. 如果当前topic有使用过即有过传输过信息:并没有真正删除topic只是把这个topic标记为删除(marked for deletion)

针对第二种情况(以insight-test这个topic为例):

  1. 先确定kafka的server.properties中的,如果是集群,就需要把每台机上的kafka的值设为true
  2. 断开所有的消费者和生产者
  3. 进行删除工作:进入kafka/bin:输入删除命令:(本人是集群,有三台zookeeper)

 kafka-topics.sh --delete --zookeeper 192.168.181.120:20000,192.168.181.121:20000,192.168.181.66:20000 --topic insight-test

  1. 应该会提示:marked for deletion
  2. 进入zookeeper的目录登录zookeeper客户端

  bin/zkCli.sh -server 192.168.181.120:20000

  1. 删除consumers文件下的消费组id(这里面存放着消费者的offset)(本人的消费组id为insight-import)

  rmr /consumers/insight-import

  1. 查看/config/topics  ; /brokers/topics ; /admin/delete_topics 这几个文件夹下是否有需要删除的topic的消费组id,有的话也要删除

完成

查看相关的topic还在不在:

/home/kafka/bin/kafka-topics.sh --list --zookeeper localhost:20000

 

 

 

 

posted @ 2017-09-01 15:51  LazyJoJo  阅读(598)  评论(0编辑  收藏  举报