在我将现有的Production Kafka Cluster从Kafka0.8.2.1升级到Kafka0.11.0.1后,错误开始了。
无法为新版本的库初始化kafka配置。
在我们的项目中,我们使用storm来处理实时Kafka主题
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]
我不确定主要原因,但我怀疑它是用于kafka 11的scala版本。
答案 0 :(得分:0)
确保类路径上有org.apache.kafka:kafka-clients以及org.apache.kafka:kafka。像Maven这样的工具应该为你做这个,但也许你手动处理依赖关系?如果是这样,您希望将此处的依赖项https://mvnrepository.com/artifact/org.apache.kafka/kafka_2.11/0.8.2.1与此处的新依赖项https://mvnrepository.com/artifact/org.apache.kafka/kafka_2.11/0.11.0.1进行比较
答案 1 :(得分:0)
我遇到了同样的问题,经过几天(!),我终于找到了一个我想分享的解决方案
问题是项目的eclipse引用库中的kafka-clients包的版本。尽管使用了maven更新,它保留了0.8.2.1版本。但正确的是0.10.2.1。所以,我使用
从maven导入了正确的库 mvn dependency:get -Dartifact=org.apache.kafka:kafka-clients:0.10.2.1
并从类路径中删除旧版本,它的工作原理! 希望这可以帮助 ! 米歇尔。