ubuntu eclipse安装hadoop-eclipse-plugin

1.编译hadoop2x-eclipse-plugin

1.1 安装Ant

访问Ant官网,下载一个合适的版本。这里下载的是1.10.0版本。解压下载的文件夹,使用gedit ~/.bashrc添加环境变量。添加完成后通过source ~/.bashrc使配置生效。

export ANT_HOME=/home/hadoop1/Download/apache-ant-1.10.0 #路径名以解压缩包生成的文件夹为准
export PATH=${ANT_HOME}/bin:$PATH

1.2编译hadoop2x-eclipse-plugin

从hadoop2x-eclipse-plugin项目地址下载源码,将压缩包进行解压。进入到文件夹内。
这里写图片描述
按照官方编译知道,进入到src/contrib/eclipse-plugin文件加载运行ant jar -Dversion=2.7.6 -Dhadoop.version=2.7.6 -Declipse.home=/home/hadoop1/Download/eclipse -Dhadoop.home=/home/hadoop1/Download/hadoop-2.7.6 -debug命令进行编译。(注:具体参数根据实际情况更改)

cd src/contrib/eclipse-plugin
ant jar -Dversion=2.4.1 -Dhadoop.version=2.4.1 -Declipse.home=/opt/eclipse -Dhadoop.home=/usr/share/hadoop
version: plugin version
hadoop.version: hadoop version you want to compiled with
eclipse.home: path of eclipse home
hadoop.home: path of hadoop 2.x home

编译过程中会出现错误,我们可以在${hadoop_home}/share/hadoop/common/lib下找到2.7.6下的jar版本,同时根据官方文档,修改配置文件${hadoop2x-eclipse-plugin-master}/ivy/libraries.properties。在hadoop2.7.6版本中,commons-collections为3.2.2版本,所以找不到commons-collections-3.2.1.jar,所以要修改一下${hadoop2x-eclipse-plugin-master}/ivy/libraries.properties中的配置信息。编译过程中会出现多次这种错误,修改相关jar包版本信息即可。编译成功的jar包在
${hadoop2x-eclipse-plugin}/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.7.6.jar
ubuntu eclipse安装hadoop-eclipse-plugin_第1张图片
ubuntu eclipse安装hadoop-eclipse-plugin_第2张图片

2.配置hadoop2x-eclipse-plugin

将hadoop-eclipse-plugin-2.7.6.jar,复制到eclipse安装目录下的plugins下。重启eclipse。点击菜单栏Windows–>Preferences,如果插件安装成功,就会出现如下图,在红圈范围内选择hadoop安装目录。
ubuntu eclipse安装hadoop-eclipse-plugin_第3张图片
点击Windows–> Show View –> Others –> Map/Redure Location 。
ubuntu eclipse安装hadoop-eclipse-plugin_第4张图片
点击下方Map/Redure Locations 窗口,空白处右键New Hadoop location。或点击右边带加号的蓝色小象。填写相关信息。
ubuntu eclipse安装hadoop-eclipse-plugin_第5张图片

3.消除Bug

在填写完成后一直报错,错误为java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.ipc.ProtobufRpcEngine。插件是针对2.6.0版本开发的,2.7.6版本可能修改了部分依赖jar包。应该是缺少这个类所在的jar包。但是在hadoop-eclipse-plugin-2.7.6.jar找到了该类所在的jar包,hadoop-common-2.7.6.jar。通过查看eclipse的日志文件发现最开始报的错为java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets,引起了错误java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.ipc.ProtobufRpcEngine。在hadoop-eclipse-plugin-2.7.6.jar不包含common-io-xxxx.jar。因此修改hadoop2x-eclipse-plugin的配置文件,生成hadoop-eclipse-plugin-2.7.6.jar时包含common-io-xxxx.jar。在${hadoop2x-eclipse-plugin-master}/ivy/libraries.properties文件中包含common-io.version,但是版本和hadoop依赖的版本不一样,先修改版本,在${hadoop2x-eclipse-plugin-master}/src/contrib/eclipse-plugin/build.xml中添加命令包含common-io-xxx.jar.

"\${hadoop.home}/share/hadoop/common/lib/commons-io-${commons-io.version}.jar"  todir="${build.dir}/lib" verbose="true"/> 

lib/commons-io-${commons-io.version}.jar,

ubuntu eclipse安装hadoop-eclipse-plugin_第6张图片
ubuntu eclipse安装hadoop-eclipse-plugin_第7张图片
重新编译,将新hadoop-eclipse-plugin-2.7.6.jar放入eclipse的插件文件夹中,重启eclipse,填写相关信息,就可以使用hadoop插件了。
ubuntu eclipse安装hadoop-eclipse-plugin_第8张图片

你可能感兴趣的:(hadoop学习)