2015-05-08 54 views
0

我正在使用Hadoop 0.20.1运行的Java项目,并试图迁移到Hadoop 2.6.0。一旦我在这个项目改变了相应的Hadoop jar文件,我提交作业时得到如下错误:在Windows上使用Hadoop 2.6.0提交作业时出错

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method) 
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557) 
    at org.apache.hadoop.fs.FileUtil.canRead(FileUtil.java:977) 
    at org.apache.hadoop.util.DiskChecker.checkAccessByFileMethods(DiskChecker.java:187) 
    at org.apache.hadoop.util.DiskChecker.checkDirAccess(DiskChecker.java:174) 
    at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:108) 
    at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.confChanged(LocalDirAllocator.java:285) 
    at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:344) 
    at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:150) 
    at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:131) 
    at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:115) 
    at org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:131) 
    at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:163) 
    at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:731) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:536) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293) 

我读过它可能是与Hadoop的二进制文件有问题,但我已经建立他们自己,将它们放在“c:\ hadoop \ bin”中,并且环境变量HADOOP_HOME具有正确的值。

我跑我的Eclipse项目中,一台机器上的Windows 7 64位和Java 8

谁能帮助我?

谢谢!

+0

您正在使用独立模式,伪分布式模式还是连接到群集? 通过运行hadoop示例来检查您的安装。无论如何,在独立模式之外的窗口上运行hadoop并不是一个好主意。 –

+0

我打算使用独立模式。我已经把它放在我的mapred-site.xml中,目的是:“ mapreduce.framework.name local”。我将下载hadoop示例以确保安装正常。 –

回答

0

我终于解决了我的问题。我安装了Java 8 32位而不是64位版本。我安装了正确的版本和完美提交的Hadoop作业。

相关问题