【问题标题】:NoClassDefFoundError: org/apache/kafka/common/requests/AbstractResponseNoClassDefFoundError:org/apache/kafka/common/requests/AbstractResponse
【发布时间】:2018-05-08 08:24:50
【问题描述】:

在我将现有的生产 Kafka 集群从 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 版本有关。

【问题讨论】:

    标签: apache-kafka apache-storm


    【解决方案1】:

    确保类路径上有 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 此处设置的新依赖项进行比较

    【讨论】:

      【解决方案2】:

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

      问题是项目的 Eclipse 引用库中的 kafka-clients 包的版本。尽管使用了 maven 更新,但它保留了 0.8.2.1 版本。但正确的是 0.10.2.1。所以,我使用 maven 从 maven 导入了正确的库

      mvn dependency:get -Dartifact=org.apache.kafka:kafka-clients:0.10.2.1

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

      【讨论】:

        猜你喜欢
        • 2022-10-26
        • 2017-02-16
        • 2020-10-14
        • 2013-03-25
        • 1970-01-01
        • 2018-09-13
        • 2014-07-02
        • 1970-01-01
        • 2022-07-08
        相关资源
        最近更新 更多