HDP平台上的Kafka NoSuchMethodError

时间:2017-10-18 13:37:32

标签: java maven spark-streaming

案例

尝试构建一些需要Kafka库的代码,并将其部署到HDP平台。构建成功但在运行时抱怨无法找到类。在HDP平台上查找Kafka版本显示类似0.10.0.2.5.3.16-1的内容,对mvn的快速检查显示此版本不存在此类Kafka库。最近的版本是0.10.0.2.5.3.42-1我正在使用。

症状

运行时错误,表示无法找到类或方法,例如kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V

1 个答案:

答案 0 :(得分:0)

<强>原因

HDP平台中提供的服务后缀为HDP版本,因此Kafka Hello World! 实际上是Kafka版本trait A { public function smallTalk() { echo 'a'; } public function bigTalk() { echo 'A'; } } trait B { public function smallTalk() { echo 'b'; } public function bigTalk() { echo 'B'; } } class Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; } } class Aliased_Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; B::bigTalk as talk; } } ,并进一步挖掘显示它的版本0.10.0.2.5.3.16-1 。 HDP版本为0.10.0

<强>解决方案

将pom中的0.10.0.1退回到有效的版本中,我发现2.5.3对我有效。