停止每台机器上的kafka;
删除kafka存储目录(server.properties文件log.dirs配置,默认为“/tmp/kafka-logs”)全部topic的数据目录;
删除zookeeper上与kafka相关的znode节点;
重启kafka、如果删除topic还在则需要重启zookeeper;
这里以192.168.187.201 node1、192.168.187.202 node2、192.168.187.203 node3三台机器作为kafka的集群。
注意:kafka版本为kafka_2.11-1.1.1
1.1 停止每台机器上的kafka以root用户分别登录三台机器,使用命令jps 找出kafka的PID,再使用命令 kill kafka进程。
节点node1
节点node2
节点node3
1.2 删除kafka存储目录在kafka安装目录的config文件夹下server.properties中查看存储目录为:
删除该目录所有数据:
1.3 删除zookeeper上与kafka相关的znode节点zookeeper上面保存着kafka的所有topic及其消费信息,故需要删除与kafka相关的znode节点:
进入zookeeper的shell界面:
查看与kafka相关的znode节点:
在上面的znode节点中,除了zookeeper作为zk的安全保障措施,其他znode节点都得删除
1.4 重启kafka分别在node1、node2、node3上面执行如下命令启动kafka:
/opt/app/kafka_2.11-1.1.1/bin/kafka-server-start.sh /opt/app/kafka_2.11-1.1.1/config/server.properties > /dev/null 2>&1 &
jps命令查看node1、node2、node3上面的启动情况:
最后在查看kafka上面是否还有topic存在:
可以看到topic及其相关数据已被清空删除
2. 某一topic数据清空查看当前所有topic
比如目前需要删除test这一topic,目前kafka_2.11-1.1.1以上版本默认delete.topic.enable=true,即是说使用命令
./kafka-topics.sh --zookeeper node1:2181 --delete --topic test