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,如下图所示:

 

步骤2) 选择源代码目录,设置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:

 

在上图所示的界面中,点击New 按钮,在弹出的对话框中选中Ant Builder,确定之后会弹出如下对话框:

 

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

 

除上图所示的设置外,还需要设置如下图所示的Targets,建议设置成Manual Build 编译方式,而不是Auto Build 编译方式。因为在Auto Build 模式下,任何修改都会触发编译,而Manual Build 模式下,只在需要的时候,点击编译按钮或菜单编译即可。

 

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

 

确定之后,返回如下图所示的Edit Configuration 对话框:

 

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

 

  请注意:如果上图所示的菜单中的Build Automatically 被勾中,则在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
增加一行:<property name="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
注释掉原来的//import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
改为import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;

2、报错:

Build failed

Can not 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

原文地址:https://www.cnblogs.com/zyumeng/p/2975165.html