Apache kafka NoClassDefFoundError:org/apache/kafka/common/requests/AbstractResponse

Apache kafka NoClassDefFoundError:org/apache/kafka/common/requests/AbstractResponse,apache-kafka,apache-storm,Apache Kafka,Apache Storm,在我将现有生产卡夫卡群集从卡夫卡0.8.2.1升级到卡夫卡0.11.0.1后,开始出现错误 无法为新版本的库初始化kafka配置 在我们的项目中,我们使用storm处理实时卡夫卡主题 Storm Version: 1.0.2 Storm-Kafka version: 1.0.2 Kafka-Version: 0.11.0.1 with Scala 2.11 错误日志: java.lang.NoClassDefFoundError: org/apache/kafka/common/request

在我将现有生产卡夫卡群集从卡夫卡0.8.2.1升级到卡夫卡0.11.0.1后,开始出现错误

无法为新版本的库初始化kafka配置

在我们的项目中,我们使用storm处理实时卡夫卡主题

Storm Version: 1.0.2
Storm-Kafka version: 1.0.2
Kafka-Version: 0.11.0.1 with Scala 2.11
错误日志:

java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/AbstractResponse
    at org.apache.storm.kafka.KafkaConfig.<init>(KafkaConfig.java:36) ~[storm-kafka-1.0.2.jar:1.0.2]
    at org.apache.storm.kafka.KafkaConfig.<init>(KafkaConfig.java:47) ~[storm-kafka-1.0.2.jar:1.0.2]
    at org.apache.storm.kafka.trident.TridentKafkaConfig.<init>(TridentKafkaConfig.java:30) ~[storm-kafka-1.0.2.jar:1.0.2]
java.lang.NoClassDefFoundError:org/apache/kafka/common/requests/AbstractResponse
在org.apache.storm.kafka.kafkanconfig.(kafkanconfig.java:36)~[storm-kafka-1.0.2.jar:1.0.2]
在org.apache.storm.kafka.kafkanconfig.(kafkanconfig.java:47)~[storm-kafka-1.0.2.jar:1.0.2]
在org.apache.storm.kafka.trident.tridentkafkanconfig.(tridentkafkanconfig.java:30)~[storm-kafka-1.0.2.jar:1.0.2]

我不确定其主要原因,但我怀疑它与用于kafka 11的scala版本有关。

确保类路径上有org.apache.kafka:kafka客户端以及org.apache.kafka:kafka客户端。像Maven这样的工具应该为您做到这一点,但也许您是在手动处理依赖项?如果是这样的话,您会想将这里的依赖项与这里的新依赖项集进行比较

我遇到了同样的问题,在花了几天时间(!)之后,我终于找到了一个解决方案,我想与您分享

问题在于项目的eclipse引用库中的kafka客户端包的版本。尽管使用了maven更新,它仍然保持了0.8.2.1版本。但正确的是0.10.2.1。因此,我使用

mvn依赖项:get-Dartifact=org.apache.kafka:kafka客户端:0.10.2.1

并且从类路径中删除了旧版本,它就可以工作了! 希望这有帮助! 米歇尔