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的新手,我不知道我错过了什么。请帮忙!
答案 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如果已经添加