大数据学习笔记——hadoop1.2.1 eclipse_plugin编译、安装及使用

hadoop自带了eclipse的插件,但是其jar包需要我们自己对其提供的源码进行编译,在hadoop的src/contrib/目录下可以看到eclipse-plugin文件夹,此中包含的即是我们所需要的eclipse插件的源码工程,如下图:
eclipse_plugin

1.eclipse-plugin——MapReduceTool编译

1)打开eclipse软件,导入“hadoop-1.2.1\src\contrib\eclipse-plugin”中的工程。
2)导入工程后,会有java build path相关的错误,我们右击“MapReduceTool工程”在properties中找到java build path,我们可看到在libraries中的hadoop-core.jar在”./lib”目录下找不到,我们在工程中创建lib目录,同时将hadoop-1.2.1目录下的hadoop-core-1.2.1.jar拷贝到lib目录下,同时改名为hadoop-core.jar。
3)hadoop eclipse插件采用的是ANT进行打包编译,hadoop为我们编写好了ANT编译所需环境的配置代码,我们需要将“hadoop-1.2.1\src\contrib\bulid_contrib.xml”文件复制到工程根目录下即可。

下图是eclipse插件树形结构图:
工程目录

4)修改ant编译配置文件”build.xml”、“build-contrib.xml”
① 在build-contrib.xml中添加hadoop目录属性、eclipse目录属性和版本号,添加代码如下:

<property name="hadoop.root" location="C:\Workspace\JAVA\hadoop-1.2.1\hadoop-1.2.1"/>
<property name="eclipse.home" location="C:\Program Files (x86)\eclipse-jee-mars-2-win32\eclipse"/>
<property name="version" value="1.2.1"/>

环境变量配置

② 修改build.xml

<!--修改"../build-contrib.xml"为"build-contrib.xml"-->
<import file="../build-contrib.xml" /><import file="build-contrib.xml" />
<!--添加如下代码-->
<path id="hadoop-jars">
    <fileset dir="${hadoop.root}">
        <include name="hadoop-*.jar" />
    </fileset>
</path>
<path id="classpath">
    <pathelement location="${build.classes}" />
    <pathelement location="${hadoop.root}/build/classes" />
    <path refid="eclipse-sdk-jars" />
    <!--添加如下代码-->
    <path refid="hadoop-jars" />
</path>
<target name="jar" depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/lib" />
<!-- 将文件原有的下面这两行代码注释掉,添加下面7行代码 -->
<!--    
        <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.8.8.jar" todir="${build.dir}/lib" verbose="true" />
    <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.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>

build.xml文件修改完后如下图:
build

5)修改“MANIFEST.MF”文件

修改属性:
Bundle-ClassPath: classes/,
 lib/hadoop-core.jar
为:
Bundle-ClassPath: classes/,
 lib/hadoop-core.jar,
 lib/

如下图:
MANIFEST

6)添加ANT编译器
工程右键->Properties,打开Properties对话框,在Builders中添加ANT编译器,如下图:
Builders

7)选中项目,点击”Project->Build Project”对工程进行编译,编译成功如下图:
编译成功
从编译结果中可以看到我们所需要的插件jar包为“C:\Workspace\JAVA\hadoop-1.2.1\hadoop-1.2.1\build\contrib\eclipse-plugin\hadoop-eclipse-plugin-1.2.1.jar”。

2.eclipse插件安装

将上面编译好的hadoop-eclipse-plugin-1.2.1.jar放入到”eclipse\plugin”目录下,重启eclipse即可

3.eclipse插件使用

1)打开MapReduce Tools View视图
在Window —> Show View —> Other 找到Map/Reduce Locations,选中打开即可,如下图:
eclipse插件
插件视图如下:
插件
2)点击“大象”,弹出hadoop location对话框,填入服务器的相关信息即可,如下图:
配置hadoop location

4.eclipse插件编译使用中的问题

1)build工程时报“com.sun.tools.javac.Main is not on the classpath.”错误
错误内容如下:

com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to “C:\Program Files (x86)\Java\jre1.8.0_66”

这个错误解决需要如下两步:
a.JAVA_HOME没配置,在环境变量中配置JAVA_HOME为“C:\Program Files (x86)\Java\jdk1.8.0_66”即可
b.将“C:\Program Files (x86)\Java\jdk1.8.0_66\lib”中的tools.lib拷贝到”C:\Program Files (x86)\Java\jre1.8.0_66\lib”中即可

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风水月

从心底相信自己是成功的第一步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值