2018-07-02
Hadoop一般安装在Linux上,写好的MR程序放到Linux上运行。在编写的过程中,有时需要测试程序的正确性,每次都需要放到Linux上运行又太麻烦,今天讲解一种在Windows下使用eclipse开发并测试MR程序的方法。
1、下载并安装插件 hadoop-eclipse-plugin-2.6.0.jar
下载地址:链接:https://pan.baidu.com/s/1mafSFOw7sfqOrKGM3Opifw 密码:z7ll
解压zip文件,把hadoop-eclipse-plugin-2.6.0.jar放入eclipse安装目录下的plugins文件夹,重启eclipse。若插件没有加载,删除eclipse安装目录下configuration文件夹中的org.eclipse.update文件夹,再重启eclipse即可。
若hadoop-eclipse插件正常加载,打开Windows---->Preference界面,会出现Hadoop Map/Reduce设置项,如下图所示:
hadoop eclipse插件安装成功2、设置Hadoop安装的路径
把在Linux上安装的Hadoop拷贝到Windows上,并把上一步中解压出的hadoop.dll、winutils.exe两个文件放入Hadoop中bin目录下,如图:
并在Windows---->Preference界面中设置hadoop的路径,如图:
设置hadoop路径3、连接Hadoop的HDFS
安装好插件,现在测试能否连接上HDFS。打开Hadoop Map/Reduce视图,依次选择菜单Windows--->Perspective--->Open Perspective ---> Other,打开界面如图:
打开的Hadoop Map/Reduce视图如图:
按照如下操作连接Hadoop的HDFS:在上图的空白区域点右键,点击New Hadoop Location菜单,出现下图,并设置DFS(HDFS)和Map/Reduce Master (yarn.resourcemanager.resource-tracker.address)的主机地址和端口号。
设置主机地址和端口号与HDFS连接成功后,会在项目管理区中浏览到HDFS中的文件,如图:
与HDFS连接成功4、写MR程序,以WordCount为例
参考文章:WordCount程序
5、可能会遇到的问题
A.Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
说明hadoop.dll、winutils.exe文件的版本不正确
网盘中提供的文件是兼容的。
B.Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
从异常信息可以看出,访问权限不足,因为Windows用户不是Linux的组成员用户。
解决办法:修改hadoop的源代码,修改org.apache.hadoop.io.nativeio.Nativeio.java中的access函数,返回值改为true,如下图所示:
并拷贝到工程中:
网友评论