java.lang.NoSuchFieldError:在eclipse中运行hadoop 2.2.0时出现IBM_JAVA错误

时间:2014-04-21 04:55:20

标签: java hadoop mapreduce

Exception in thread "main" java.lang.NoSuchFieldError: IBM_JAVA
at org.apache.hadoop.security.UserGroupInformation.getOSLoginModuleName(UserGroupInformation.java:303)
at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:348)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2590)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2582)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2448)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:166)
at org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:653)
at org.apache.hadoop.mapred.FileInputFormat.addInputPath(FileInputFormat.java:408)
at MaxTemperature.main(MaxTemperature.java:25)

我试图在Windows-7下的eclipse中运行hadoop madp-reduce程序时遇到上述错误

JDK版本:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

此处已经提出了相同类型的问题:

the IBM_JAVA error for running jobs in Hadoop 2.2.0 但没有人回答。

IBM_JAVA不是代码中使用的变量。

我是hadoop的新手,我不知道我错过了什么。请帮忙!

3 个答案:

答案 0 :(得分:1)

原因是你的java依赖关系不完整,你丢失了jar包hadoop-auth-2.2.0.jar或者它的新版本

答案 1 :(得分:0)

就像user3762708所说的那样,你缺少hadoop-auth包,将它添加到你的类路径中。

此外:如果问题仍然存在,请从类路径中删除hadoop-core。它会与hadoop-auth发生冲突。

答案 2 :(得分:0)

添加
    Hadoop-auth 2.6
    Hadoop-core 1.2.1

Hadoop-auth 2.6 - &gt; org.apache.hadoop.util.PlatformName.class有IBM_JAVA(所以添加Jar)

org.apache.hadoop.security.UserGroupInformation存在于Hadoop-common中,它没有IBM_JAVA 然后删除
 Hadoop-common x.x如果已经添加