解决Eclipse+JDK 32 bit+hadoop 32bit 遇到org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lan

5 篇文章 0 订阅
2 篇文章 0 订阅

引言

解决Eclipse+JDK 32 bit+hadoop 32bit 调试并提交MapReduce作业遇到的系列问题:

 Exceptionin thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)

at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)

at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:570)

at org.apache.hadoop.fs.FileUtil.canRead(FileUtil.java:977

之前一直在本地(windows 64 bit )的 Eclipse+hadoop2.5.2(64 bit)+jdk 64下调试,由于近期的任务是通过JNative完成Java调用DCMTK(C++),而JNative的运行要求是jdk 32 bit,故现在更改环境为Eclipse+JDK 32 bit+hadoop 32bit (hadoop2.2.0,2.5.1之前都是32位的)。

为了解决这个困扰很久的问题,进行了诸多尝试,最后的成功方案是:

hadoop-2.2.0\bin的hadoop.dll放到C:\Windows\System32下,然后重启电脑,还是出现这样的问题。

然后,我们下载对应hadoop源代码,hadoop-2.2.0-src.tar.gz解压,hadoop-2.2.0-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project,然后修改435行为return true如图所示:

错误终于一去不复返了,顺利运行了!心累啊,这么个问题困扰了一天!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值