Hadoop eclipse插件编译与配置

1.编译

首先说明,这里所用的hadoop版本为1.0.0。
hadoop的eclipse插件通过编译/src/contrib/eclipse-plugin目录下的代码得到,但是直接编译得到的jar包因为缺少一些依赖库而不能直接使用,因此首先要进行一些修改然后再编译。
首先修改build.xml

在``标签内加入下面一行:
<fileset dir="${hadoop.root}" includes="*.jar"/>

在末尾的target标签中加入以下内容

<copy file="${hadoop.root}/lib/commons-configuration-1.6.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/jackson-core-asl-1.0.1.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/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true" />

我还发现原本就存在的两个copy也有问题:

 <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文件目录都不对,因此修改他们,让他们指向正确的目录:

<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

这个版本的hadoop使用了过期的API,可以在build.xml中的javac标签中加入下面两行来在编译过程中显示关于未检查转换和过期API的警告详情,也可以不加,编译器依然会简单的警告。

<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-Xlint:deprecation"/>

然后修改META-INF/MANIFEST.MF文件,将Bundle-ClassPath属性修改为:

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

然后执行ant -Declipse.home=/usr/lib/eclipse -Dversion=1.0.0来进行编译,其中Declipse.home指定eclipse的安装目录,Dversion指定hadoop的版本。
如果在输出中看到BUILD SUCCESSFUL说明编译成功。如果编译过程中遇到错误,可以参考解决错误

2.配置

生成的jar文件在hadoop-1.0.0/build/contrib/eclipse-plugin目录下,将该jar包拷贝到eclipse的plugins目录下,重启eclipse。
然后Windows-》Show View-》Other-》MapReduce Tools-》Map/Reduce Locations-》New Hadoop Location,然后填写如下内容。
这里写图片描述


如果能通过Project Explorer看到HDFS上的文件,说明插件配置成功。

这里写图片描述

3.解决错误

我在编译的过程中出现错误说找不到package org.apache.hadoop.fs,这显然是由于没有正确的引用hadoop-core-1.0.0.jar造成的,因此在上面将hadoop安装目录下的jar包全部加入classpath解决了这个问题(看这里)。当然也可能遇到其他的问题,为了方便排查错误,附一张主要的依赖关系图和一些变量的值。

这里写图片描述

${hadoop.root}=/usr/lib/hadoop-1.0.0
${root}=${basedir}=${hadoop.root}/src/contrib/eclipse-plugin
${build.dir}=${hadoop.root}/build/contrib/eclipse-plugin
${build.classes}=${build.dir}/classes
${src.dir}=${root}/src/java
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值