我在运行Map Reduce
工作时遇到错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.yarn.proto.YarnProtos$LocalResourceProto.hashLong(J)I
at org.apache.hadoop.yarn.proto.YarnProtos$LocalResourceProto.hashCode(YarnProtos.java:11655)
at org.apache.hadoop.yarn.api.records.impl.pb.LocalResourcePBImpl.hashCode(LocalResourcePBImpl.java:62)
at java.util.HashMap.hash(HashMap.java:362)
at java.util.HashMap.put(HashMap.java:492)
进行一些谷歌搜索,我碰到了thread,这表明这与proto
版本相关的错误。它说我的应用程序使用proto3
依赖于proto2
纱线。
根据我的pom.xml
,正在使用protobuf-java-2.6.1.jar
。
有谁可以帮我理解这个问题以及如何解决它?
答案 0 :(得分:2)
此错误表示代码编译时使用的jar文件与 run 时使用的jar文件不同。您需要确保使用与编译代码完全相同的protobuf jar版本。如果您自己没有编译代码,那么您需要弄清楚提供商使用的版本。