Map Reduce 作业:Protobuf 相关错误
Map Reduce Job: Protobuf related error
我在 运行 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)
做了一点 google 搜索,我遇到了一个 thread,提示这是 proto
版本相关的错误。它说我的应用程序依赖于 proto3
with yarn using proto2
.
根据我的 pom.xml
,正在使用 protobuf-java-2.6.1.jar
。
任何人都可以帮助我理解这个问题以及如何解决它吗?
此错误表明代码编译时使用的jar文件与运行[=时使用的jar文件不同14=]。您需要确保您使用的 protobuf jar 版本与编译代码所针对的版本完全相同。如果您没有自己编译代码,则需要弄清楚提供程序使用的是什么版本。
我在 运行 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)
做了一点 google 搜索,我遇到了一个 thread,提示这是 proto
版本相关的错误。它说我的应用程序依赖于 proto3
with yarn using proto2
.
根据我的 pom.xml
,正在使用 protobuf-java-2.6.1.jar
。
任何人都可以帮助我理解这个问题以及如何解决它吗?
此错误表明代码编译时使用的jar文件与运行[=时使用的jar文件不同14=]。您需要确保您使用的 protobuf jar 版本与编译代码所针对的版本完全相同。如果您没有自己编译代码,则需要弄清楚提供程序使用的是什么版本。