在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");

猜你喜欢

转载自www.cnblogs.com/bihaiba/p/11438986.html