环境是Ubuntu,PC上使用Windows 10 ,在idea上连接Hadoop使用Mapreduce。
Hadoop使用的版本是hadoop-2.6.0-cdh5.15.1
报错:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Wi
首先使用winutils.exe,从https://github.com/4ttty/winutils下载hadoop2.6.0和hadoop.dll
将winutils和hadoop.dll放在C:\Windows\System32下,然后修改org.apache.hadoop.io.nativeio路径下的NativeIO文件(方法是:复制到本地同样的包名,然后写上和源码一样的类NativeIO,然后修改文件):


如果上述设置之后,还是无法运行hadoop,可以将winutils和hadoop.dll放到D:\java\winutils\bin

然后配置环境变量:
新建HADOOP_HOME:

编辑PATH:

然后在程序中指定:
System.setProperty("hadoop.home.dir", "D:\\winutils")即可。
出现问题:
org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)问题
可以将hadoop-2.7.1的hadoop.dll文件添加进来,替换掉2.6.0版本的hadoop.dll
本文详细介绍了在Ubuntu和Windows10环境下,使用IDEA连接Hadoop进行MapReduce操作时遇到的DLL加载错误解决方法。包括下载winutils.exe和hadoop.dll,放置在不同目录并配置环境变量的过程。
2万+

被折叠的 条评论
为什么被折叠?



