Ubuntu16.04+Hadoop2.9.1 + Eclipse配置(解决New Location无反应)
本文记录在Hadoop和Eclipse安装成功后如何配置开发环境。
版本:Hadoop2.9.1 + Eclipse Luna
想要在Eclipse中编写Hadoop程序,主要是编译Hadoop-Eclipse plugin。
1.去github下载编译工具:https://github.com/winghc/hadoop2x-eclipse-plugin.git
2.按照github上的readme,进入下列目录:
3.在上述目录下,输入命令:
注意根据编译的Hadoop版本修改上述的参数:
-Dversion = Hadoop的版本号(eg.; 2.9.1)
-Dhadoop.version = Hadoop的版本号(eg.; 2.9.1)
-Declipse.home = Eclipse的安装路径
-Dhadoop.home = hadoop的安装路径
4.上述命令执行过程中会出现问题,第一个是卡在ivy-resolve-common处。
解决方法:修改src\contrib\eclipse-plugin\build.xml文件,去除对ivy的依赖:
<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
修改为
<target name="compile" unless="skip.contrib">
5.第二个问题是会出现无法copy XXX.jar的error。
参考github上的解释:
就是根据 HADDOP_INSTALL_PATH/share/hadoop/common/lib下jar包的不同版本修改 /ivy/libraries.properties中的对应版本号
6.第三个问题是Hadoop2.9.1特有的,就是安装完成后启动Eclipse,点击Add New Location没有反应,这其实是因为编译过程中缺少了两个包,这一个问题的解决主要感谢:
https://zhuanlan.zhihu.com/p/38630695
解决方法:修改src\contrib\eclipse-plugin\build.xml文件,主要在两个地方做修改:
上图中选中的两个地方就是后加的,也就是编译时需要多编译两个包。Github上只提到了需要修改Bundle Class处,但没说还要增加<copy file …… />的部分,但只修改前者并没有解决问题。
7.完成后,再次运行第3步中的ant命令,编译成功后,在hadoop2x-eclipse-plugin-master/build/contrib路径下生成了插件:hadoop-eclipse-plugin-2.9.1.jar
8.将插件复制到ECLIPSE_INSTSALL_PATH/plugins/路径下
9.启动eclipse,打开window===>prefernces,找到Hadoop Map/Reduce选项卡,配置hadoop installation directory目录,指向hadoop的安装目录
10.打开window====>show view====>other,找到Map/Reduce Locations,使其显示
11.点击new hadoop locations,弹出对话框说明配置成功。