Kafka 彻底删除 topic 操作命令流程

来源:互联网 发布:交行信用卡淘宝有积分 编辑:程序博客网 时间:2024/04/24 04:09

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

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



针对第二种情况(以game_log_game_skuld_01这个topic为例)

1.先确定kafka的server.properties中的,如果是集群,就需要把每台机上的kafka的 delete.topic.enable=true 设为true

2.断开所有的消费者和生产者

3.进行删除工作:
进入kafka/bin:输入删除命令
/usr/local/kafka/bin/kafka-topics.sh --delete --zookeeper master:2181,slave1:2181,slave2:2181 --topic game_log_game_skuld_01
#应该会提示:marked for deletion

4.移除 kafka 数据目录,非必须,慎重操作
#rm -rf /data/kafka/logs/game_log_game_skuld_01*

5.进入zookeeper的目录登录zookeeper客户端

/usr/local/zookeeper/bin/zkCli.sh -server master:2181,slave1:2181,slave2:2181

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

rmr /xx/xx/game_log_game_skuld_01

6.查看相关的topic是否存在,不存在删除成功
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181


7.#重启 kafka
cd /usr/local/kafka
./start.sh 

8#窗口消费 topic
/usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181 --from-beginning --topic game_log_game_skuld_01