kafka全部数据清空与某一topic数据清空一过期数据清理_wrr-cat的博客-CSDN博客_kafka清理过期数据 

1. #停止kafka
bin/kafka-server-stop.sh 
2. # 删除主题
/kafka-topics.sh --zookeeper node:2181 --delete --topic test 
3. # 查看kafka topic
kafka-topics.sh --list --zookeeper node:2181

某一topic数据清空


查看当前所有topic

技术分享图片

技术分享图片 

 

比如目前需要删除test这一topic,目前kafka_2.11-1.1.1以上版本默认delete.topic.enable=true,即是说使用命令

./kafka-topics.sh --zookeeper node1:2181 --delete --topic test

该命令将会在zookeeper中删除与test这一topic相关的znode节点(包括test详细信息、生产数据、消费数据的节点),并在kafka的存储目录/opt/data/kafka/kafka-logs/下把与test这一topic相关的存储数据目录标记为待删除,稍后会真正删除这些待删除的目录,如下:

使用kafka-topics.sh查看test在zookeeper中相关znode节点信息是否已被删除

在/opt/data/kafka/kafka-logs目录下查看test相关存储目录是否被标记删除

在/opt/data/kafka/kafka-logs目录下查看test相关存储目录已被删除

1. Kafka全部数据清空


kafka全部数据清空的步骤为:

停止每台机器上的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,kafka-stop.sh 停止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及其相关数据已被清空删除


原文链接:https://blog.csdn.net/wr_java/article/details/115375283

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐