使用新的Kafka版本2.1.0和Storm版本1.2.2从Kafka Spout启动拓扑时,将获得java.lang.ClassNotFoundException:kafka.api.OffsetRequest。当我使用Kafka版本0.10.0.1。时,我不明白这一点。你们能帮忙吗,我想成为最新的Kafka版本?
我尝试了所有从2. *开始的最新kafka版本。但是它不起作用。由:java.lang.ClassNotFoundException:kafka.api.OffsetRequest
答案 0 :(得分:0)
kafka.api
是旧的Scala类。 Many of these were removed in Kafka 2.x
这些类中的大多数都移到了org.apache.kafka.common.requests
上,并且有ListOffsetRequest
和OffsetFetchRequest
,所以不确定您要使用哪个类。
如果Storm本身依赖于这些旧API,那么您将被这些旧API所束缚,您自己的处理器将无法使用新API。
此外,Kafka服务器版本本身仅支持这些新请求类的某些API调用。
答案 1 :(得分:0)
除了this answer,我怀疑您正在使用storm-kafka
库进行Kafka集成。您需要迁移到基于新的Kafka API的storm-kafka-client
。可以在here中找到新模块的文档。
如果您需要从storm-kafka
迁移已提交的偏移量,可以在https://github.com/apache/storm/tree/master/external/storm-kafka-migration使用该实用程序。它可以让您迁移而不必重新开始您的Kafka分区。