Map Reduce Job:Protobuf相关的错误

时间:2015-12-08 06:51:55

标签: hadoop mapreduce protocol-buffers

我在运行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

有谁可以帮我理解这个问题以及如何解决它?

1 个答案:

答案 0 :(得分:2)

此错误表示代码编译时使用的jar文件与 run 时使用的jar文件不同。您需要确保使用与编译代码完全相同的protobuf jar版本。如果您自己没有编译代码,那么您需要弄清楚提供商使用的版本。