[英]Kafka NoSuchMethodError on HDP Platform
Case 案件
Trying to build some code which requires Kafka libraries and will be deployed to an HDP platform. 尝试构建一些需要Kafka库的代码,并将其部署到HDP平台上。 Build succeeds but at runtime complains that classes cannot be found.
构建成功,但是在运行时抱怨找不到类。 Looking up Kafka version on HDP platform reveals something like
0.10.0.2.5.3.16-1
, a quick check on mvn reveals that no such Kafka library exists for this version. 在HDP平台上查找Kafka版本会显示类似
0.10.0.2.5.3.16-1
,对mvn的快速检查显示该版本不存在这样的Kafka库。 The nearest version is 0.10.0.2.5.3.42-1
which I'm using. 我正在使用的最近版本是
0.10.0.2.5.3.42-1
。
Symptoms 病征
Runtime errors which say that classes or methods cannot be found, for instance kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
表示找不到类或方法的运行时错误,例如
kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
Reason 原因
The services provided in the HDP platform are suffixed with the HDP version, so Kafka 0.10.0.2.5.3.16-1
is actually Kafka version 0.10.0
, and digging further reveals that it's version 0.10.0.1
. HDP平台中提供的服务带有HDP版本后缀,因此Kafka
0.10.0.2.5.3.16-1
实际上是Kafka版本0.10.0
,进一步挖掘发现它是版本0.10.0.1
。 The HDP version is 2.5.3
. HDP版本为
2.5.3
。
Solution 解
Drop back ${kafka.version}
in pom to a version which works, I found that 0.8.2.1
worked for me. 将pom中的
${kafka.version}
放回可以使用的版本,我发现0.8.2.1
对我0.8.2.1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.