Apache kafka 清理集群中的卡夫卡主题
我知道我可以通过删除/data/Kafka logs/topic/*下的日志或将retention.ms config设置为1000来清除代理上的Kafka主题。我想知道如何清理多节点集群中的主题。我应该停止每个代理上的Kafka进程,删除日志并启动Kafka,还是只有leader代理就足够了?如果要通过将rettension.ms设置为1000进行清理,是否需要在每个代理上设置它?要删除特定主题中的所有消息,可以运行Apache kafka 清理集群中的卡夫卡主题,apache-kafka,Apache Kafka,我知道我可以通过删除/data/Kafka logs/topic/*下的日志或将retention.ms config设置为1000来清除代理上的Kafka主题。我想知道如何清理多节点集群中的主题。我应该停止每个代理上的Kafka进程,删除日志并启动Kafka,还是只有leader代理就足够了?如果要通过将rettension.ms设置为1000进行清理,是否需要在每个代理上设置它?要删除特定主题中的所有消息,可以运行kafka delete records.sh 例如,我有一个名为test的主
kafka delete records.sh
例如,我有一个名为test
的主题,它有4个分区
创建一个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
如果要删除一个主题,可以使用卡夫卡主题
:
例如,我想删除test
主题:
/opt/kafka/confluent-4.0.0/bin/kafka-topics --zookeeper 109.XXX.XX.XX:2181 --delete --topic test
设置主题保留(设置为任何值,而不仅仅是1000)时,不需要重新启动Kafka,它已经应用于每个副本。除非希望集群经历停机,否则不要重新启动任何东西