使用的hadoop版本为hadoop-1.2.1(对应的含源码的安装包为hadoop-1.2.1.tar.gz)
将hadoop和eclipse都解压在home中的用户目录下
/home/chen/hadoop-1.2.1
/home/chen/eclipse
进入eclipse插件的编译目录
cd /home/chen/hadoop-1.2.1/src/contrib/eclipse-plugin/
修改build.xml,有两处需要修改
1.在classpath中添加hadoop相关jar包
<fileset dir="${hadoop.root}"> <include name="**/*.jar" /> </fileset>
2.将已有的两行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"/> --> <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" tofile="${build.dir}/lib/commons-cli.jar" verbose="true"/> <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" tofile="${build.dir}/lib/commons-configuration.jar" verbose="true"/> <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" tofile="${build.dir}/lib/commons-httpclient.jar" verbose="true"/> <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" tofile="${build.dir}/lib/commons-lang.jar" verbose="true"/> <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-core-asl.jar" verbose="true"/> <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-mapper-asl.jar" verbose="true"/>
修改处见图中标红
之后运行ant命令编译,指明eclipse的安装目录和hadoop的版本
ant -Declipse.home=/home/chen/eclipse -Dversion=1.2.1
编译成功会显示BUILD SUCCESSFUL字样
在 /home/chen/hadoop-1.2.1/build/contrib/eclipse-plugin/目录下会生成hadoop-eclipse-plugin-1.2.1.jar
将hadoop-eclipse-plugin-1.2.1.jar拷贝到eclipse的plugins目录下就可以了
最后还需要注意一个问题,有的兄弟可能遇到编译好的插件在eclipse中无法加载问题,原因是JDK不兼容,我是用JDK1.7编译的插件,如果你的eclipse默认运行的还是JDK6,那么这插件肯定用不了,稳妥的方法是用相同版本的JDK