我知道我可以通过删除/data/kafka logs/topic/*下的日志或将retention.ms config设置为1000来清除代理上的kafka主题。我想知道如何清理多节点集群中的主题。我应该停止每个代理上的kafka进程,删除日志并启动kafka,还是只有leader代理就足够了?如果要通过将rettension.ms设置为1000进行清理,是否需要在每个代理上设置它?
deyfvvtc1#
要删除特定主题中的所有邮件,可以运行 kafka-delete-records.sh 例如,我有一个主题叫做 test ,其中有4个 partitions .创建 Json 例如,文件 j.json :
kafka-delete-records.sh
test
partitions
Json
j.json
{ "partitions": [ { "topic": "test", "partition": 0, "offset": -1 }, { "topic": "test", "partition": 1, "offset": -1 }, { "topic": "test", "partition": 2, "offset": -1 }, { "topic": "test", "partition": 3, "offset": -1 } ], "version": 1 }
现在通过以下命令删除所有消息:
/opt/kafka/confluent-4.1.1/bin/kafdelete-records --bootstrap-server 192.168.XX.XX:9092 --offset-json-file j.json
执行命令后,将显示此消息
Records delete operation completed: partition: test-0 low_watermark: 7 partition: test-1 low_watermark: 7 partition: test-2 low_watermark: 7 partition: test-3 low_watermark: 7
如果要删除一个主题,可以使用 kafka-topics :例如,我想删除 test 主题:
kafka-topics
/opt/kafka/confluent-4.0.0/bin/kafka-topics --zookeeper 109.XXX.XX.XX:2181 --delete --topic test
你不需要重启Kafka
1条答案
按热度按时间deyfvvtc1#
要删除特定主题中的所有邮件,可以运行
kafka-delete-records.sh
例如,我有一个主题叫做test
,其中有4个partitions
.创建
Json
例如,文件j.json
:现在通过以下命令删除所有消息:
执行命令后,将显示此消息
如果要删除一个主题,可以使用
kafka-topics
:例如,我想删除
test
主题:你不需要重启Kafka