【问题标题】:How clean old segments from compacted log in Kafka 0.8.2如何从 Kafka 0.8.2 中的压缩日志中清除旧段
【发布时间】:2016-02-11 11:17:34
【问题描述】:

我知道在新的 Kafka 版本中,我们有新的保留策略选项 - 压缩日志,删除具有相同键的旧版本消息。但是经过很长时间,我们会得到太多带有旧消息的压缩日志段。我们如何才能自动清理这个压缩日志?

UDPATE

我应该澄清一下,我们需要紧凑的日志和清理旧消息的方法。 我在这里找到了相同问题的讨论http://grokbase.com/t/kafka/users/14bv6gaz0t/kafka-0-8-2-log-cleaner 但没有找到我们如何手动为消息发出 thomstone 标记并且不知道这一点。

【问题讨论】:

  • 为了澄清,你问的是如何清理已经被压缩的日志?
  • 是的,我们将拥有具有唯一键的最新版本的消息,但是这个序列可以增长到非常大的大小。例如,我希望有任何方法可以压缩最近的日志段并删除最旧的日志段。或者可能以其他方式标记要删除的消息。抱歉我的英语不好,但我真的很想了解这项技术。

标签: java bigdata apache-kafka


【解决方案1】:

这个问题很老了,但我想我会提供有关此事的最新更新。有一项功能 (https://issues.apache.org/jira/browse/KAFKA-4015) 已解决,并计划在 0.10.1.0 版本中发布。

【讨论】:

    【解决方案2】:

    降低 Kafka 日志大小的唯一其他方法是通过日志保留配置设置。

    log.retention.{ms,minutes,hours}
    log.retention.bytes
    

    另外请注意,如果同时设置了 log.retention.hours 和 log.retention.bytes,我们会在超过任一限制时删除一个段。

    这两个决定何时在 Kafka 中删除日志。 log.retention.bytes 默认为 -1,我很确定将其保留为 -1 仅允许时间配置单独确定何时删除日志。

    日志保留和压缩彼此分开工作。使用保留,即使在启用日志压缩的情况下,也可以在一定时间或大小后删除日志。因此,如果您理论上有 100Mb 的日志限制,并设置您的 log.retention.bytes=104857600 (100Mb)。 Kafka 将压缩您的日志,直到其大小达到 100Mb,然后将删除必要的消息(最旧的在前),直到日志大小低于 100Mb。

    编辑:

    基于 mechanikos 提供的 link 事实证明,日志保留和压缩是互斥的。虽然 Kafka 的设计似乎很奇怪,但日志会无限增长,而无法删除旧的日志消息。

    【讨论】:

    • 但是官方文档说“如果我们使用“删除”保留策略,此配置控制在我们丢弃旧日志段以释放空间之前日志可以增长到的最大大小。默认情况下有没有大小限制,只有时间限制。”例如,对于 log.retention.ms。如果我们设置“delete”选项,它将起作用,但对于压缩,我们需要设置“compact”
    • 您引用的内容来自主题级别的配置,对吗?我的答案基于 Broker Configs。设置代理配置,log.cleaner.enable=true 和 log.retention.ms=10000,消息在超时后从 Kafka 主题中删除。 (我运行了一个示例主题只是为了仔细检查)目前我并不完全了解主题级别配置与代理级别配置的交互方式。
    • 好的,感谢您的工作和回答,我会尝试在工作中测试您的建议。
    • 不幸的是,这不适用于日志压缩。也许我不明白你的第一条评论。我需要工作压缩日志并删除最旧的消息。主题级配置只是覆盖代理级设置。 Docs说关于保留策略“这可以取值delete或compact。如果设置了delete,日志段将在达到设置的大小或时间限制时被删除。如果设置了compact,则日志压缩将用于清理过时的记录。” .它看起来像日志保留和压缩不单独工作
    • 我阅读了您提供的链接,似乎我最初的回答错了。您能否编辑您的问题并放置与保留和压缩相关的代理和主题级别配置值,以便我或其他阅读此问题的人可以了解有关您当前配置的更多信息。
    猜你喜欢
    • 2016-02-08
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多