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

网上有很多编译好的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中的内容了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值