- 环境:Windows10 + JDK1.8 +Hadoop2.7.2
- 错误:org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
- 解决办法
1)把对应版本的hadoop.dll 和 winutils放到hadoop安装目录的bin目录下
2)环境变量的配置
3)把下面代码放到wordcount的驱动程序中
static {
try {
System.load("D:/Hadoop/hadoop-2.7.3/bin/hadoop.dll");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
让其强制加载bin目录下的hadoop.dll
4)把加入的代码删除即可,不再报错。(我删了还是报错,不删了)
更新:
在configurations中的VM Argument添加参数:
-Djava.library.path=C:\devTools\winutils-master\hadoop-3.0.0
可以解决这个问题,但是会报
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
查了其他方法,最终都需要改源码
修改源码