在 Kafka Spout 中使用新的 Kafka 版本 2.1.0 和 Apache Storm 1.2.2 获取 ClassNotFoundException
Getting ClassNotFoundException by using new Kafka Version 2.1.0 with Apache Storm 1.2.2 in Kafka Spout
在使用新的 Kafka 2.1.0 版和 Storm 1.2.2 版的 Kafka Spout 启动拓扑时,得到 java.lang.ClassNotFoundException:kafka.api.OffsetRequest。当我使用 Kafka 版本 0.10.0.1 时,我没有得到这个。你们能帮忙吗,因为我想使用最新的 Kafka 版本?
所有2.*开头的kafka最新版本我都试过了。但不是 works.Caused by: java.lang.ClassNotFoundException: kafka.api.OffsetRequest
kafka.api
是旧的 Scala 类。 Many of these were removed in Kafka 2.x
大多数 类 已移至 org.apache.kafka.common.requests
,还有 ListOffsetRequest
和 OffsetFetchRequest
,因此不确定您要使用哪个。
如果 Storm 本身依赖于这些旧的 APIs,那么您将绑定到那些,您自己的处理器无法使用新的 APIs。
此外,Kafka 服务器版本本身仅支持这些新请求类 的某些API 调用。
添加到 , I suspect you're using the storm-kafka
library for Kafka integration. You need to migrate to storm-kafka-client
, which is based on the new Kafka APIs. The documentation for the new module can be found here。
如果您需要从 storm-kafka
迁移已提交的偏移量,您可以使用 https://github.com/apache/storm/tree/master/external/storm-kafka-migration 中的实用程序。它可以让您迁移而无需在 Kafka 分区上重新开始。
在使用新的 Kafka 2.1.0 版和 Storm 1.2.2 版的 Kafka Spout 启动拓扑时,得到 java.lang.ClassNotFoundException:kafka.api.OffsetRequest。当我使用 Kafka 版本 0.10.0.1 时,我没有得到这个。你们能帮忙吗,因为我想使用最新的 Kafka 版本?
所有2.*开头的kafka最新版本我都试过了。但不是 works.Caused by: java.lang.ClassNotFoundException: kafka.api.OffsetRequest
kafka.api
是旧的 Scala 类。 Many of these were removed in Kafka 2.x
大多数 类 已移至 org.apache.kafka.common.requests
,还有 ListOffsetRequest
和 OffsetFetchRequest
,因此不确定您要使用哪个。
如果 Storm 本身依赖于这些旧的 APIs,那么您将绑定到那些,您自己的处理器无法使用新的 APIs。
此外,Kafka 服务器版本本身仅支持这些新请求类 的某些API 调用。
添加到 storm-kafka
library for Kafka integration. You need to migrate to storm-kafka-client
, which is based on the new Kafka APIs. The documentation for the new module can be found here。
如果您需要从 storm-kafka
迁移已提交的偏移量,您可以使用 https://github.com/apache/storm/tree/master/external/storm-kafka-migration 中的实用程序。它可以让您迁移而无需在 Kafka 分区上重新开始。