【问题标题】:WARN Found a corrupted index file due to requirement failed: Corrupt index found, index fileWARN 由于要求失败,发现损坏的索引文件:发现损坏的索引,索引文件
【发布时间】:2019-09-13 23:41:29
【问题描述】:

Kafka v0.11.0.2

Kafka 代理在 PST 时区运行了大约一个月,然后由于操作系统补丁,管理员将时区更改为 EST,重新启动后,我们看到了消费者消息的重播(消费者偏移量重置为 0)。我们要求管理员将时区更改回 PST,他们花了 3 天时间才更改。将时区改回 PST 后,在代理重新启动期间,我们看到了以下日志消息(即使对于主题和 __consumer_offsets -> WARN 发现由于要求失败而损坏的索引文件:)

由于时区更改导致 Kafka 代理重新启动时 __consumer_offsets 损坏,它真的会将消费者偏移量重置为 0 吗?在此消息之后,我们再次获得了消息重播。

WARN 发现因要求失败而损坏的索引文件:发现损坏的索引,索引文件 (/app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.index) 具有非零大小,但最后一个偏移量是 2076,不大于 基本偏移量 2076.}。删除 /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.timeindex, /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.index, 和 /app/kafka_2.12-0.11.0.2/data/__consumer_offsets-21/00000000000000002076.txnindex 和重建索引... (kafka.log.Log)

我们如何解决消费者偏移不回到零 (0) 的问题?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    我们在重新启动代理时遇到了类似的问题。事实证明,对我们来说,这是systemd 配置的问题,它没有等待足够长的时间来正确关闭 Kafka 服务器。

    我们在每个具有 150 个主题的代理上拥有 350 GB 的数据,关闭 Kafka 服务器大约需要 8 分钟。然而,systemd 被配置为只等待 90 秒让服务器关闭,然后它的强制终止服务器。当服务器重新启动时,它最终会损坏索引文件,因为它没有正确关闭。修复是在kafka.service systemd 配置中设置TimeoutStopSec=600

    我们在一篇博文中总结了这个问题和修复方法:https://blog.experteer.engineering/kafka-corrupted-index-file-warnings-after-broker-restart.html

    【讨论】:

      【解决方案2】:

      删除索引文件。

      这个问题是基于索引不能匹配日志文件。 这个问题长期存在,恢复的方法是删除索引文件,它会重新创建。

      【讨论】:

      • 虽然这会抑制警告,但首先要了解导致索引文件损坏的原因。
      【解决方案3】:

      我遇到这个问题,删除索引文件,启动kafka:

      cd /tmp/kafka-logs/dolphin-spider-google-book-bookinfo-0
      # delete index file
      rm -rf *
      

      问题已解决。注意:此方法会丢失您当前的消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多