编译hadoop-eclipse插件并集成到eclipse中去

来源:互联网 发布:手机淘宝支付宝登陆 编辑:程序博客网 时间:2024/05/22 17:06

网上有很多编译好的hadoop-eclipse-x.x.x的插件,参差不齐,有的是官方的插件,大部分是个人自己编译的插件分享出来,由于每个人的环境有所不同,直接使用这些插件的话总是会遇到一些问题,所以最好的办法就是自己根据自己的环境编译生成hadoop-eclipse-x.x.x插件,这样就不会出现问题了。


博主的环境如下:
操作系统:Ubuntu14.04
jdk:1.8.0
hadoop:1.0.0
eclipse:Neon4.6.3(这个影响不大,版本很多)

首先需要安装的基础环境就是jdk+ant,这里不多说,教程很多,也不复杂。
然后就是hadoop环境,这里博主是为了学习hadoop源码,所以只搭建了单机环境的hadoop
再就是安装eclipse,我用的是解压即用版。
上面的环境搭建好之后,就可以来配置hadoop-eclipse插件了

第一步:修改 {hadoop目录}/src/contrib/eclipse-plugins/build.xml
找到

<path id="classpath"></path>

用ctrl+F,然后在弹出框中输入“classpath”就可以快速找到啦。
找到之后,原本里面的内容如下:

<path id="classpath">  <pathelement location="${build.classes}"/>  <pathelement location="${hadoop.root}/build/classes"/>  <path refid="eclipse-sdk-jars"/></path>

现在需要往里面添加

<fileset dir="${hadoop.root}/">      <include name="*.jar"/></fileset>

添加完之后内容如下:

<path id="classpath"> <fileset dir="${hadoop.root}/">   <include name="*.jar"/> </fileset> <pathelement location="${build.classes}"/> <pathelement location="${hadoop.root}/build/classes"/> <path refid="eclipse-sdk-jars"/></path>

保存退出。
第二步:找到

<target name="jar" depends="compile" unless="skip.contrib"></target>

里面原本的内容如下:

<target name="jar" depends="compile" unless="skip.contrib">   <mkdir dir="${build.dir}/lib"/>   <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>    <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>    <jar      jarfile="${build.dir}/hadoop-${name}-${version}.jar"      manifest="${root}/META-INF/MANIFEST.MF">      <fileset dir="${build.dir}" includes="classes/ lib/"/>      <fileset dir="${root}" includes="resources/ plugin.xml"/>    </jar>  </target>

我们需要把两个copy标签的内容注释掉,然后添加如下内容:

<copy file="${hadoop.root}/hadoop-core-${version}.jar"                   tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/><copy file="${hadoop.root}/lib/commons-cli-1.2.jar"      todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>

这里面有个需要注意的地方,所有的jar包需要和你的{hadoop目录}/lib下同名jar包版本保持一致,不同就改成你的lib下的那个版本
添加完毕后,内容如下:

<target name="jar" depends="compile" unless="skip.contrib">   <mkdir dir="${build.dir}/lib"/>   <!-- <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>    <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/> --><copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/><copy file="${hadoop.root}/lib/commons-cli-1.2.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/> <jar    jarfile="${build.dir}/hadoop-${name}-${version}.jar"    manifest="${root}/META-INF/MANIFEST.MF">    <fileset dir="${build.dir}" includes="classes/ lib/"/>    <fileset dir="${root}" includes="resources/ plugin.xml"/> </jar></target>

保存退出。
第三步:修改{hadoop目录}/src/contrib/build-contrib.xml
在< project >< /project >标签下添加如下内容:

<property name="version" value="1.0.0"/><property name="ivy.version" value="2.1.0"/><property name="eclipse.home" location="/home/chj/eclipse"/>

第一行指明你的hadoop版本(修改value值),第二行指明ivy的版本(可以不改),第三行指定你的eclipse的目录(修改location值)。
修改完成后,保存退出。

第四步:修改{hadoop目录}/src/contrib/eclipse-plugins/META-INF/MANIFEST.MF
找到Bundle-ClassPath: classes/,lib/hadoop-core.jar这一行

Bundle-ClassPath: classes/, lib/hadoop-core.jar

在后面追加:

,lib/jackson-core-asl-1.0.1.jar ,lib/jackson-mapper-asl-1.0.1.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar

追加后变成:

Bundle-ClassPath: classes/, lib/hadoop-core.jar,lib/jackson-core-asl-1.0.1.jar ,lib/jackson-mapper-asl-1.0.1.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar

这里的jar的版本也要和你的{hadoop目录}/lib下的同名jar保持保持一致
保存退出。

第五步:在{hadoop目录}/src/contrib/eclipse-plugins/下运行ant或者ant jar
当看到BUILD SUCCESSFUL的时候表示成功
这里写图片描述
可以看到在BUILD SUCCESSFUL的上一行指明了生成的hadoop-eclipse-plugin-1.0.0.jar的位置。
去该位置将该jar拷贝至你的eclipse目录下的plugins下即可

第六步:启动eclipse
选择window->preferences,选择hadoop map/reduce
这里写图片描述
在右边的Hadoop installation directory中选择你的hadoop的目录,然后apply->ok

选择window->show view->other,找到MapReduces Tools,选择Map/Reduce Locations,点击ok
这里写图片描述
然后在eclipse的下方就可以看到Map/Reduce Locations栏,如下图所示:
这里写图片描述

右键->New Hadoop Location,弹出新建hadooplocation的弹窗
这里写图片描述
User name需要和你的linux账户名称一致
输入完成后,点击finish

在eclipse左边栏Package Explorer中右键->Show In->Project Explorer,在Project Explorer中就可以看到HDFS Location了
这里写图片描述
展开就可以看到hdfs中的内容了

原创粉丝点击