NoSuchMethodError:org.apache.hadoop.mapreduce.Job.getInstance

NoSuchMethodError:org.apache.hadoop.mapreduce.Job.getInstance,hadoop,mapreduce,Hadoop,Mapreduce,我已经在mac上安装了ApacheHadoop2.5。我正在写一个简单的字数计算程序。由于一些Job的构造函数不受欢迎,所以我使用这个 Job job = Job.getInstance(conf); job.setJarByClass(WordCount.class); Eclipse中的一切都很好,但是当我尝试使用命令行时(hadoop jar…) 我得到了这个错误 NoSuchMethodError:org.apache.hadoop.mapreduce.Job.getInstance

我已经在mac上安装了ApacheHadoop2.5。我正在写一个简单的字数计算程序。由于一些Job的构造函数不受欢迎,所以我使用这个

Job job = Job.getInstance(conf);
job.setJarByClass(WordCount.class);
Eclipse中的一切都很好,但是当我尝试使用命令行时(hadoop jar…)

我得到了这个错误

NoSuchMethodError:org.apache.hadoop.mapreduce.Job.getInstance

这是类路径错误吗?hadoop引用的类不是我从eclipse运行时使用的类吗?如何解决这个问题


谢谢

是的,似乎eclipse中的类路径与系统中的类路径(或编译时使用的类路径)不同。 在eclipse中,转到project>properties,检查其中使用的库,并在从命令行使用时使用相同的库。

答案是:

Job job = Job.getInstance(conf);
已被

Job job = new Job(conf);

这是我自己的观点。

我发现有类似的问题贴出来,可能会有所帮助