解决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:\Windows\System32目录下运行就可以了

找了好久终于找到了不要钱的,可恶啊啊啊啊啊!
Hadoop2以上版本,在Hadoop2的bin目录下没有winutils.exe
winutils.exe这个文件编译后发现没有,下载地址https://codeload.github.com/cdarlint/winutils/zip/refs/heads/master这个里有这些版本的bin内容
在这里插入图片描述
在这里插入图片描述

GitHub 加速计划 / wi / winutils
2.51 K
3 K
下载
Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase)
最近提交(Master分支:3 个月前 )
e8089ecf - 2 年前
d4f71517 point people at cdarlint/winutils for binaries and call out the fact that we could remove the need for this entirely just to run spark on windows 5 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐