最近在练习mapreduce编程代码,在使用Windows本地测试时,报错:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

网上找了好些解决方式,大多都说的缺少hadoop.dll,我修改后不起作用,最后参考到:

https://www.cnblogs.com/duking1991/p/6111490.html

修改了源码才解决了问题。

1、下载对应版本源码包解压

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

2 、找到nativii

如:

D:\Develop\repository\hadoop-2.9.0-src\hadoop-2.9.0-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

3、修改NativeIO.java文件

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

4、将它加入到工程中

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

重新启动,程序执行正常。


相关文章: