最近一段时间都在学习hadoop,下载的是1.2.1的版本,包括源码;发如今该版本的安装目录下再也不提供eclipse的插件包;可是在src/contrib目录下依然有eclipse-plugin的目录用于提供插件的源码,以及对应的Ant使用的build.xml文件; apache
为了开发Map/Reduce程序的方便,决定本身进行hadoop的eclipse-plugin的打包操做,打包的步骤以下: app
PS:本次编译打包,使用的JDK: 1.6 ; eclipse : 4.2 ; hadoop : 1.2.1 eclipse
a.修改src/constrib 目录下的 build-contrib.xml 文件 oop
增长:<property name="eclipse.home" value="D:/eclipse-jee-juno-SR2-win32/eclipse" /> 学习
这个表示设定 eclipse.home的参数; ui
缘由:在 src/constrib/eclipse-plugin目录下的build.xml 中有用到 eclipse.home的参数; spa
而 eclipse-plugin目录下的build.xml 中引用的参数都在 build-contrib.xml文件中定义; 插件
b.修改 build.xml(src/contrib/eclipse-plugin)文件 xml
b.1. 增长 hadoop-jars的 path 设定; ip
若是没有增长这一段,那么在 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