在windowns环境下运行mapreduce项目遇到的问题及相应的处理方案
作者:互联网
在windowns环境下运行mapreduce项目遇到的问题及相应的处理方案
一:准备资料链接: https://pan.baidu.com/s/1bjCx5sQxbT_j5_761wHj-A 密码:pr47
1.准备windowns版的hadoop,我这里是hadoop2.7.1.(已经对hadoop下的bin和etc目录进行了替换,主要是要bin目录下hadoop.dll和winutils.exe )
2.准备好org/apache/hadoop/io/nativeio.NativeIO.java和org/apache/hadoop/io/YARNRunner.java
二.执行过程
1.安装好java的jdk(1.8就行)
2.将hadoop解压后直接放在一个目录下(对于目录最好不要太深,可以在根目录下,hadoop目录,jdk目录最好都不要有空格)
3.给hadoop配置好环境变量
一、新建一个环境变量
HADOOP_HOME=D:\hadoop\hadoop-2.7.1
二、在Path环境变量后面追加:
%HADOOP_HOME%\bin
4.创建好单机的测试项目
5.将一中2里面的两个.java文件导入项目的eclipse的src或者idea的java下面
三.注意点:
1.这里与集群或单机运行没有关系
2.跟使用eclipse和idea没有关系
四.常遇到的问题:
1.底层io处理问题,有时版本不匹配也会出现.
问题描述:.Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode(Ljava/io/File;I)V
解决:NativeIO.java和YARNRunner.java两个文件因为系统的版本不同,有时需要添加,有时不需要.可以尝试添加或删除
2.hadoop.dll文件和hadoop的版本不匹配
问题描述:Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
解决:我给的是hadoop2.7.1,那hadoop.dll也要是对应版本的.注意:我给的hadoop本身是已经替换了hadoop.dll
3.访问权限问题
问题描述.org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
解决:将hadoop的bin目录下的hadoop,dll放在.c:\windows\system32 下.
注意:如果是win7一般没有权限问题 ,win8和win10权限问题比较常见.
4.空指针问题,没有找到hadoop包
问题描述:NullpointException
解决:配置环境变量,还是不行可以继续在代码中添加
System.setProperty("hadoop.home.dir", "D:\hadoop-2.7.1");
标签:java,遇到,hadoop,windowns,apache,io,mapreduce,org,dll 来源: https://www.cnblogs.com/bihaiba/p/11438986.html