【发布时间】:2020-11-18 01:38:56
【问题描述】:
我们将log retention hours 设置为 1 小时,如下所示(之前设置为 72H)
使用下面的Kafka命令行工具,我们将kafka的retention.ms设置为1H。我们的目标是清除主题中早于 1H 的数据 - test_topic,因此我们使用了以下命令:
kafka-configs.sh --alter \
--zookeeper localhost:2181 \
--entity-type topics \
--entity-name topic_test \
--add-config retention.ms=3600000
还有
kafka-topics.sh --zookeeper localhost:2181 --alter \
--topic topic_test \
--config retention.ms=3600000
两个命令都运行没有错误。
但问题在于 Kafka 数据早于 1H 并且仍然存在!
实际上没有从主题topic_test分区中删除任何数据。我们有 HDP Kafka 集群版本 1.0x 和 ambari
我们不明白为什么主题数据 - topic_test 仍然存在?并且即使在我们按照已经描述的那样运行两个 cli 之后也没有减少
以下kafka cli有什么问题?
kafka-configs.sh --alter --zookeeper localhost:2181 --entity-type topics --entity-name topic_test --add-config retention.ms=3600000
kafka-topics.sh --zookeeper localhost:2181 --alter --topic topic_test --config retention.ms=3600000
从 Kafka server.log 我们可以看到以下内容
2020-07-28 14:47:27,394] INFO Processing override for entityPath: topics/topic_test with config: Map(retention.bytes -> 2165441552, retention.ms -> 3600000) (kafka.server.DynamicConfigManager)
[2020-07-28 14:47:27,397] WARN retention.ms for topic topic_test is set to 3600000. It is smaller than message.timestamp.difference.max.ms's value 9223372036854775807. This may result in frequent log rolling. (kafka.server.TopicConfigHandler)
【问题讨论】:
标签: apache-kafka