Java Hadoop NoSuchMethodError

Java Hadoop NoSuchMethodError,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,有没有人知道为什么以前工作的东西突然出现这个错误?请帮忙 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) a

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

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

来自
org/apache/hadoop/mapreduce/Counter
我猜
hadoop mapreduce client core.jar
缺少
Counter
类包含在
hadoop mapreduce client core.jar
中。你一定是把它降级了

如果您正在使用构建工具(maven、gradle…),请检查您的依赖项并确保它们没有更改。如有疑问,请使用最新版本


否则,请转到您的
hadoop mapreduce client core.jar
,检查该方法是否在您的项目中,或者只是获取一个更新的版本来替换它。

这是因为应用程序中可用的最新编译类和依赖jar的版本不同。例如:让类A使用依赖JARx编译,然后在不同的环境中使用依赖JARx1编译相同的类A,其中包含一个名为Y的新方法。现在该类将被编译,因为新方法Y在jarx1中可用,当在jarx所在的环境中使用相同的类A时,那么当尝试在类内存中加载该类时,它将导致NoSuchMethod异常。Classloader在调用real execution之前将类加载到类内存中之前,对依赖类进行验证。

所有内容都可用所有jar文件和所有文件。在一个精疲力尽的工作之后,我决定重新加载所有东西(即重新加载hadoop文件)。感谢你们的帮助:)

您可能更新/降级了某些内容,以至于现在缺少了一个方法。以前哪些方法有效?显示导致错误的代码。@Stibu不需要代码段,请查看错误,所有可能导致错误的内容都存在。文件夹中的所有内容仍然存在。我从未升级或降级过任何东西。