hadoop nosuchmethoderror

wswtfjt7  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(620)

有人知道为什么以前工作的东西突然出现这种错误吗?请帮忙

java.lang.NoSuchMethodError: org.apache.hadoop.mapred.Counters.findCounter(Ljava/lang/Enum;)Lorg/apache/hadoop/mapreduce/Counter;
at edu.umn.cs.spatialHadoop.operations.Sampler.sampleMapReduceWithRatio(Sampler.java:214)
at edu.umn.cs.spatialHadoop.operations.Sampler.sample(Sampler.java:543)
at edu.umn.cs.spatialHadoop.operations.Repartition.packInRectangles(Repartition.java:494)
at edu.umn.cs.spatialHadoop.operations.Repartition.packInRectangles(Repartition.java:463)
at edu.umn.cs.spatialHadoop.operations.Repartition.repartitionLocal(Repartition.java:590)

这已经工作较早,但突然开始给这个错误。我使用的是hadoop版本1.2.1

xtfmy6hx

xtfmy6hx1#

Counter 课程包含在 hadoop-mapreduce-client-core.jar . 你一定是把它降级了。
如果您使用的是构建工具(maven、gradle…),请检查您的依赖项并确保它们没有更改。如有疑问,请使用最新版本。
否则,去你的房间 hadoop-mapreduce-client-core.jar 或者检查方法是否在内部,或者只获取一个更新的版本来替换项目中的方法。

z0qdvdin

z0qdvdin2#

这是因为应用程序中可用的最新编译类和依赖jar的版本不同。例如:让类a用依赖JARx编译,然后在不同的环境中用依赖JARx1编译相同的类a,其中包含一个称为y的新方法。现在将编译该类,因为jarx1中提供了新方法y,当在jarx所在的环境中使用相同的类a时,在尝试将该类加载到类内存中时,会导致nosuchmethod异常。classloader在调用real execution之前,先在类内存中加载类,然后再验证依赖类。

kqhtkvqz

kqhtkvqz3#

org/apache/hadoop/mapreduce/Counter 我猜 hadoop-mapreduce-client-core.jar 缺少

y53ybaqx

y53ybaqx4#

一切都是可用的所有jar文件和所有。在一个疲惫不堪的工作后,我决定重新加载所有东西(即重新加载hadoop文件)。感谢你们的帮助:)

相关问题