【问题标题】:set config retention.ms=3600000 still data not delete from Kafka设置配置保留.ms=3600000 仍然没有从 Kafka 中删除数据
【发布时间】:2018-11-15 16:55:29
【问题描述】:

我已通过以下命令设置了retention.ms=3600000,但1小时后磁盘上仍有大量数据。由于大量数据传入 Kafka,我的磁盘已满。

./bin/kafka-topics.sh --zookeeper zookeeper:2181 --alter --topic topic_1 --config retention.ms=3600000

描述命令

 ./bin/kafka-topics.sh --zookeeper zookeeper:2181 --describe --topics-with-overrides
    Topic:__consumer_offsets        PartitionCount:50       ReplicationFactor:3     Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
    Topic:topic_1    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000
    Topic:topic_2    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000
    Topic:topic_3    PartitionCount:3        ReplicationFactor:3     Configs:retention.ms=3600000,retention.bytes=104857600

谁能给一些建议,为什么kafka 1小时后不删除数据。?

【问题讨论】:

    标签: apache-kafka retention


    【解决方案1】:

    从 describe 命令的结果来看,主题保留策略设置为 compact,这将启用日志压缩而不是删除,并将保留每个键的最新数据。要删除所有超过保留期的数据,您需要将保留策略设置为delete

    ./bin/kafka-topics.sh --zookeeper zookeeper:2181 --alter --topic topic_1 --config cleanup.policy=delete
    

    【讨论】:

      【解决方案2】:

      检查log.retention.check.interval.ms的值。
      此值会影响日志清理器。它将检查是否有任何日志符合此时间间隔的删除条件。

      【讨论】:

        【解决方案3】:

        如文档所示,如果我们使用“删除”保留策略,retention.ms 控制 kafka 在丢弃旧日志段以释放空间之前保留日志的最长时间。 看起来您的 cleanup.policy 设置为紧凑而不是 delete

        bin/kafka-configs.sh --zookeeper 2181 --entity-type topics 
        --entity-name topic_1  --alter --add-config cleanup.policy=delete
        

        PS:从 kafka-topics.sh 脚本 (kafka.admin.TopicCommand) 更改主题配置已被弃用。今后,请使用 kafka-configs.sh 脚本 (kafka.admin.ConfigCommand) 来实现此功能。

        【讨论】:

          猜你喜欢
          • 2019-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多