【问题标题】:In Storm, how to migrate offsets to store in Kafka?在 Storm 中,如何将偏移量迁移到存储在 Kafka 中?
【发布时间】:2016-01-30 05:13:01
【问题描述】:

我一直有各种与 Kafka 和偏移量相关的不稳定因素。诸如工人在启动时崩溃以及与无效偏移相关的异常以及其他我不明白的事情。

我读到建议迁移偏移量以存储在 Kafka 而不是 Zookeeper 中。我在 Kafka 文档中找到了以下内容:

将偏移量从 ZooKeeper 迁移到 Kafka Kafka 消费者 早期版本默认将它们的偏移量存储在 ZooKeeper 中。它是 可以通过以下方式迁移这些消费者以将偏移量提交到 Kafka 遵循以下步骤: 1. 设置 offsets.storage=kafka 和 dual.commit.enabled=true 在您的消费者配置中。 2.做一个滚动 反弹你的消费者,然后验证你的消费者是 健康。 3. 在您的消费者配置中设置 dual.commit.enabled=false。 4. 做 您的消费者的滚动反弹,然后验证您的消费者 很健康。

回滚(即从 Kafka 迁移回 ZooKeeper)也可以 如果您设置,请使用上述步骤执行 offsets.storage=zookeeper.

http://kafka.apache.org/documentation.html#offsetmigration

但是,我还是不明白这是在指导我做什么。我在我的拓扑配置中没有看到我配置存储偏移量的位置。是埋在集群yaml里吗?

关于在 Kafka 而不是 Zookeeper 中存储偏移量是否是个好主意,有什么建议吗?以及如何执行此更改?

【问题讨论】:

    标签: apache-kafka apache-storm


    【解决方案1】:

    在撰写本文时,Storm 的 Kafka spout(请参阅https://github.com/apache/storm/tree/master/external/storm-kafka 的文档/自述文件)仅支持在 ZooKeeper 中管理消费者偏移量。也就是说,所有当前的 Storm 版本(最高 0.9.x,包括 0.10.0 Beta)仍然依赖 ZooKeeper 来存储这些偏移量。因此,您不应执行上面提到的 ZK->Kafka 偏移迁移,因为 Storm 尚不兼容。

    您需要等到 Storm 项目——特别是它的 Kafka spout——支持通过 Kafka(而不是 ZooKeeper)管理消费者偏移量。是的,一般来说,将消费者偏移量存储在 Kafka 而不是 ZooKeeper 中更好,但可惜 Storm 还没有。

    2016 年 11 月更新: 与此同时,Storm 的情况有所改善。现在有一个新的第二个 Kafka spout,它基于 Kafka 的新 0.10 消费者客户端,它将消费者偏移量存储在 Kafka(而不是 ZooKeeper)中:https://github.com/apache/storm/tree/master/external/storm-kafka-client。

    但是,在我写这篇文章的时候,storm-user 邮件列表中的用户仍然报告了几个问题(例如Urgent help! kafka-spout stops fetching data after running for a while),所以我会小心使用这个新的 Kafka spout,并且只有经过彻底的测试。

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2014-08-15
      • 2016-08-30
      • 2016-03-05
      相关资源
      最近更新 更多