哭了,这个问题困扰了我好几天,终于找到了解决的方法,谢谢博主!
因为在Linux的环境下运行代码不是特别方便,所以,文章介绍的是在Windows环境下运行hadoop程序,搭配的环境是hadoop2.7.2+Windows10+eclipse.
一,搭建环境
1.将编译后的hadoop.jar包解压到非中文路径
2.Windows10环境下,可能需要在bin目录下添加文件
3.配置hadoop环境变量,配置HADOOP_HOME和path路径
环境搭建好以后就可以创建hadoop项目,但是在运行MapReduce项目的时候遇到报错.
Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
查了很久,说的是hadoop.dll和我当前的hadoop版本不匹配会导致这个问题.
需要将将源码中NativeIO.java中access方法返回值修改为true,然后将修改后的源码添加到工程中就可以.
hadoop2.7.2中NativeIO.java所在的路径为
hadoop-common-2.7.2-sources.jar\org\apache\hadoop\io\nativeio
下图是源码中方法的返回值
将源代码里面access方法的返回值修改,改为true,
修改后将源码添加到工程中就可以运行了.
---------------------
作者:a904364908
来源:CSDN
原文:https://blog.csdn.net/a904364908/article/details/81061074
版权声明:本文为博主原创文章,转载请附上博文链接!