win7下编译hadoop1.2.1 eclipse插件

最近一段时间都在学习hadoop,下载的是1.2.1的版本,包括源码;发现在该版本的安装目录下不再提供eclipse的插件包;但是在src/contrib目录下依然有eclipse-plugin的目录用于提供插件的源码,以及对应的Ant使用的build.xml文件;

为了开发Map/Reduce程序的方便,决定自己进行hadoop的eclipse-plugin的打包操作,打包的步骤如下:

PS:本次编译打包,使用的JDK: 1.6 ; eclipse : 4.2 ; hadoop : 1.2.1

a.修改src/constrib 目录下的 build-contrib.xml 文件

增加:<property name="eclipse.home" value="D:/eclipse-jee-juno-SR2-win32/eclipse" />

这个表示设定 eclipse.home的参数;

原因:在 src/constrib/eclipse-plugin目录下的build.xml 中有用到 eclipse.home的参数;

而 eclipse-plugin目录下的build.xml 中引用的参数都在 build-contrib.xml文件中定义;

b.修改 build.xml(src/contrib/eclipse-plugin)文件

b.1. 增加 hadoop-jars的 path 设定;

如果没有增加这一段,那么在 compile阶段,会导致 无法找到 org.apache.hadoop.hdfs包下的类(甚至还有其它的一些类);

1
2
3
4
5
<pathid="hadoop-jars">
<filesetdir="${hadoop.root}/">
<includename="hadoop-*.jar"/>
</fileset>
</path>

b.2 在classpath中增加 hadoop下的lib 和 hadoop-jars的设置;

如下图中 标红色的部分;

b.3 在target name="jar"部分中,增加引入的jar包;

如下图所示:表示将这些包都加入生成的jar包中,包括:hadoop-core-1.2.1.jar ,common-cli-1.2.jar, common-lang-2.4.jar, common-configuration-1.6.jar, jackson-mapper-asl-1.8.8.jar,jackson-core-asl-1.8.8.jar, commons-httpclient-3.0.1.jar;

另外,由于我们这里没有设定 version 的参数,所以在 <jar jarfile = .........-${version}.jar 这段的时候,由于参数不能解析,将导致生成的文件名称直接就是:hadoop-eclipse-plugin-${version}.jar,建议修改生成文件名;

c.执行 bulid.xml

使用 Ant Build 的方式执行 build.xml 文件;

d.使用 hadoop-eclipse-plugin的方法

将生成的 eclipse的插件复制到eclipse 目录下的 plugin 目录下,而后重启 eclipse ; 在 window -- > Preferences 中可以看到 hadoop map/reduce的相关配置;

另外,在新建工程的时候也有:Map/Reduce Project

注意

1,虽然插件能够生成成功,但是在有些eclipse版本上是不能显示图标,hadoop eclipse插件不能加载成功,

eclipse indigo版本测试 插件生成成功,但是hadoop插件不能加载

eclipse 最新的 Eclipse Standard 版本 编译及加载都获得成功

2,

出现错误,提示信息为: "error: failure to login", 弹出的错误提示框内容为:"An

    internal error occurred during: "Connecting to DFS hadoop".

    org/apache/commons/configuration/Configuration".

    网上针对该问题有已经有了解决方案,再次做个记录,方便自己以后查看,可参考:

    http://blog.csdn.net/matraxa/article/details/7182382

 

    解决方法:

    首先要对hadoop-eclipse-plugin-0.20.203.0.jar进行修改。

    用归档管理器打开该包 ,发现只有commons- cli-1.2.jar 和hadoop-core.jar两个包。

    将HADOOP_HOME/lib目录下的 commons-configuration-1.6.jar ,

    commons-httpclient-3.0.1.jar , commons-lang-2.4.jar , jackson-core-asl-1.0.1.jar

    和 jackson-mapper-asl-1.0.1.jar 5个包通过归档管理器上的添加按钮添加到

    hadoop-eclipse-plugin-0.20.203.0.jar的lib目录下;

    然后,修改该包META-INF目录下的MANIFEST.MF,将classpath修改为一下内容:

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

    lib/commons-httpclient-   3.0.1.jar,lib/jackson-core-asl-1.8.8.jar,

    lib/jackson-mapper-asl-1.8.8.jar,lib/commons-configuration-1.6.jar,

    lib/commons-lang-2.4.jar

发布了49 篇原创文章 · 获赞 0 · 访问量 40万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览