Kafka 清空Topic

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-操作

你可能感兴趣的:(kafka,分布式)