在Storm中,如何将偏移迁移到卡夫卡存储?

时间:2015-10-29 21:18:23

标签: apache-kafka apache-storm

我一直有各种与卡夫卡和抵消有关的不稳定因素。像工作人员在启动时崩溃的事情,例如与无效补偿相关的例外情况,以及其他我不理解的事情。

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

  

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

     

回滚(即从Kafka迁移回ZooKeeper)也可以   如果设置,请使用上述步骤执行   offsets.storage =动物园管理员。

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

但是,我再也不明白这是在指示我做什么。我没有在拓扑配置中的任何地方看到我配置存储偏移的位置。它是否埋藏在集群中?

关于在Kafka而不是Zookeeper中存储偏移量的任何建议是个好主意吗?我如何才能实现这一变化?

1 个答案:

答案 0 :(得分:3)

在撰写本文时,Storm的Kafka spout(参见https://github.com/apache/storm/tree/master/external/storm-kafka的文档/ README)仅支持管理ZooKeeper中的消费者偏移。也就是说,所有当前的Storm版本(高达0.9.x并包括0.10.0 Beta)仍依赖于ZooKeeper来存储此类偏移。因此,您不应该执行上面引用的ZK-> Kafka偏移迁移,因为Storm还不兼容。

你需要等到Storm项目 - 特别是它的Kafka鲸鱼喷水 - 支持通过Kafka(而不是ZooKeeper)管理消费者抵消。是的,总的来说,最好将消费者抵消存储在Kafka而不是ZooKeeper中,但是还有Storm还没有。

2016年11月更新 在此期间,Storm的情况有所改善。现在有一个新的,第二个Kafka鲸鱼喷嘴,它基于Kafka的新0.10消费者客户端,它在Kafka(而不是ZooKeeper)中存储消费者抵消:https://github.com/apache/storm/tree/master/external/storm-kafka-client

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