kafka彻底删除topic及相关数据
修改配置
1、停止要删除topic的生产和消费程序,否则无法删除。同时,需要设置auto.create.topics.enable = false,默认设置为true,如果设置为true,则produce或者fetch 不存在的topic也会自动创建这个topic。这样会给删除topic带来很多意向不到的问题。
2、server.properties 设置delete.topic.enable=true,如果没有设置 delete.topic.enable=true,则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)
删除topic命令
./bin/kafka-topics.sh --delete --zookeeper [zookeeper的ip地址:端口号] --topic [要删除的topic名称]
删除kafka存储目录
1、先查找存储目录:vi config/server.properties
,找到log.dirs字段
2、查找到的目录:log.dirs=/root/code/packages/data/kk/logs
3、进入存储目录:cd /root/code/packages/data/kk/logs
,删除相关的topic的数据目录
PS:如果还是无法删除topic,则需要对kafka中的zookeeper存储信息删除。
删除zookeeper存储信息
1、找到zookeeper的目录,使用命令:
./bin/zkCli.sh -server [zookeeper的ip地址:端口号]
2、登录zk shell之后,找到topic目录:ls /brokers/topics
3、找到要删除的topic:rmr /brokers/topics/[要删除的topic名称]
4、如果topic被标记为marked for deletion,则通过ls /admin/delete_topics
,找到要删除的topic,然后在执行命令:rmr /admin/delete_topics/[要删除的topic名称]
查看topic是否被删除
使用命令:./bin/kafka-topics.sh --list --zookeeper [zookeeper的ip地址:端口号]
查看删除的topic是否还在,如果这里还是出现,则重启zookeeper和kafka就可以了。