初学hadooop, windows环境运行wordcount程序报错-org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectory,
报错内容:
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMo
本人环境:
windows10
hadoop version :2.7.2
java -version:1.8.0_251
解决方法:
经过查找资料,先说说我报错的原因:
E:\bigdata\hadoop-2.7.2\bin
C:\Windows\System32
我以上两个目录的hadoop.dll不一致,两个文件的时间不一样(因为我之前装过hadoop,后来重新装了硬盘…欲哭无泪)
大家的排查方法:
(1)hadoop和java环境大家应该都没啥问题
(2)接下来检查hadoop的bin目录,检查否有hadoop.dll 和 winutils.exe 这两个文件
(3)C: windows\System32 里是否有hadoop.dll 文件 (有的话看两个时间一样不,不一样就把这里的删掉,把bin目录下的copy过来,不行重启电脑看看)
这里有一个方法可以检验是不是hadoop.dll的问题:
在你的driver类中加下面代码,如果可以执行就说明是hadoop.dll的问题
static {
try {
System.load(“E:\bigdata\hadoop-2.7.2\bin\hadoop.dll”);
} catch (UnsatisfiedLinkError e) {
System.err.println(“Native code library failed to load.\n” + e);
System.exit(1);
}
}
如果还没解决,大家可以留言一起讨论解决方案,感谢!!!