环境是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