hadoop0.20.2在eclipse中的编译

1. 下载Hadoop源代码
Hadoop 各成员源代码下载地址:http://svn.apache.org/repos/asf/hadoop,请使用SVN下载,在SVN浏览器中将trunk目录下的源代码check-out 出来即可。请注意只check-out出SVN 上的tag 目录下的内容,如:
http://svn.apache.org/repos/asf/hadoop/common/tag/release-0.20.2,


2. 准备编译环境

2.1. 系统

CentOS5.5

2.2. Hadoop代码版本
hadoop-0.20.2-release

2.3. 联网
编译Hadoop 会依赖很多第三方库,但编译工具Ant 会自动从网上下载缺少的库,所以必须保证机器能够访问Internet。
2.4. java
编译Hadoop要用JDK1.6 以上,网址:http://java.sun.com/javase/downloads/index.jsp。
安装好之后,请设置好JAVA_HOME 环境变量。
2.5. Ant 
需要使用Ant 工具来编译Hadoop,可以从:http://ant.apache.org/ivy/download.cgi 下载Ant

安装好之后,请设置好ANT_HOME 环境变量。

2.6. Eclipse

Eclipse 则可以从http://www.eclipse.org/downloads/上下载。

 

3. 编译Hadoop

3.1. 编译Hadoop
步骤1) 在Elipse 的Package 视图中单击右键,选择New->Java Project,如下图所示:

在上图所示的对话框中,点击Browse 按钮,选择hadoop-0.20.2 源代码目录,并设置Projectname 为hadoop-0.20.2-dev。工程导入完成后,进入Eclipse 主界面,可以看到hadoop-0.20.2 已经导入进来,但可以看到目录上有红叉叉,是因为Elipse默认使用了Java Builder,而不是Ant Builder,所以下一步就是设置使用Ant Builder。


步骤3) 设置Builder 为Ant:右键hadoop-0.20.2-dev>Properties->Builders:


点击Browse File System 按钮,选择hadoop-0.20.2源代码目录下的build.xml 文件,并设置Name 为Ant_Builder(Name 可以改成其它的,但建议使用Ant_Builder,因为这样名副其实),操作结果如下图所示:

Hadoop 各成员都需要编译成jar,所以做如下图所示的一个修改:

上面完成后,回到Builder 的主对话框,再将对话框中的Java Builder 下移,并将它前面的勾去掉。
进入Eclipse 主界面,由于之前选择了Manual Build,所以需要人工方式驱动编译,编译成功后,可以看到BUILDSUCCESSFUL 字样。

 请注意:如果上图所示的菜单中的BuildAutomatically 被勾中,则在common的右键菜单中可能不会出现Build 子菜单。
      在编译过程中,Ant 会自动从网上下载所依赖的库。hadoop-0.20.2 编译成功结束后,可以在build 目录下找到编译后生成的文件hadoop-core-0.20.2-dev.jar。

 

3.2编译过程中出现错误


1、可能有时候因为eclipse版本或者操作系统版本的问题使得hadoop提供的eclipse plugin不太好用。
解决方法:
1)修改$HADOOP_HOME/src/contrib/build-contrib.xml
增加一行:<propertyname="eclipse.home" location="/home/gushui/eclipse"/>
上句后面的/home/gushui/eclipse由自己的$ECLIPSE_HOME代替

2)修改$HADOOP_HOME/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/launch/HadoopApplicationLaunchShortcut.java
注释掉原来的//importorg.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
改为importorg.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;

2、报错:

Buildfailed

Cannot write to the specified tarfile!

解决方法:

hadoop-0.20.2-dev目录下的Build.xml中
<!--    
<tar compression="gzip"destfile="${build.classes}/bin.tgz">
      <tarfileset dir="bin"mode="755"/>
    </tar>  
 -->

注销掉,运行成功。

 

参考 http://blog.csdn.net/basicthinker/article/details/6174442   

参考: http://hi.baidu.com/xxjjyy2008/blog/item/7b5ed10f20e6a9346059f335.html

参考: http://hadoop.hadoopor.com/thread-941-1-1.html

http://trac.nchc.org.tw/cloud/wiki/waue/2010/0211



转自http://www.cnblogs.com/zyumeng/archive/2013/03/22/2975165.html

你可能感兴趣的:(hadoop0.20.2在eclipse中的编译)