解决org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
在java中使用mapreuduce的时候报错
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
先需要在你的java项目中新建一个名为org.apache.hadoop.io.nativeio的包将NativeIO.java放进去
我是真的服了找了一圈下来都没有说这个东西在哪,只知道是hadoop源码,好多积分下载一次,***,我进行了源码编译这文件地址在/opt/hadoop-2.7.2-src/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio路径下这我不知道不同版本源代码是否不同我的是2.7.2的,自己看看就好了需要的话自己编译一遍跟着“编译教程“就可以了
找到一个解决方案
将编译过后的hadoop的/bin/目录下的hadoop.dll和winutils.exe文件复制到系统盘的C:WindowsSystem32目录下运行就可以了
找了好久终于找到了不要钱的,可恶啊啊啊啊啊!
Hadoop2以上版本,在Hadoop2的bin目录下没有winutils.exe
winutils.exe这个文件编译后发现没有,下载地址https://codeload.github.com/cdarlint/winutils/zip/refs/heads/master这个里有这些版本的bin内容