1、背景
测试环境某topic的数据格式发生了更改,需要将原有数据清空重新生产数据。
2、操作
2.1 检查当前topic的配置
[root@localhost ~]# /export/server/kafka/bin/kafka-configs.sh --zookeeper x.x.x.x:2181 --entity-type topics --entity-name topicName --describe
还需检查当前kafka topic对应的分区副本(假定单分区单副本)大小,用于验证数据是否已删除。
[root@localhost ~]# du -sh /export/server/kafka/logs/kafka/topicName-0
68M /export/server/kafka/logs/kafka/topicName-0
2.2 添加数据过期时间配置
将过期时间设置为1秒
[root@localhost ~]# /export/server/kafka/bin/kafka-configs.sh --zookeeper x.x.x.x:2181 --entity-type topics --entity-name topicName --alter --add-config retention.ms=1000
2.3 检查数据已删除
[root@localhost ~]# du -sh /export/server/kafka/logs/kafka/topicName-0
直到该文件夹显示大小是20K即证明数据已清理
同时需注意,数据清理时机受server.properties中
log.retention.check.interval.ms
配置控制,比如我的配置是5分钟:300000,那么最长需要等5分钟才能看到结果。
2.4 删除过期时间配置
[root@localhost ~]# /export/server/kafka/bin/kafka-configs.sh --zookeeper x.x.x.x:2181 --entity-type topics --entity-name topicName --alter --delete-config retention.ms
此配置一定要删除,否则后续数据可能没被消费就被删掉啦。
3、借鉴内容
Kafka——管理Kafka(命令行工具)详解
这篇博客详细写了kafka管理脚本的实际使用,我测了几个都是正确的,大家有兴趣的可以验证。
不过最好是官网阅读哈:
kafka-配置
kafka-操作
版权归原作者 王木头 所有, 如有侵权,请联系我们删除。