Hadoop源码编译

说明: Hadoop目前的版本系列分两条主线,0.20.2及目前的1.X.X属于稳定版,主要bug修复和性能提升方面;而0.23.X和2.X.X属于alpha版本,在系统架构上有较大变化,即所谓的第二代HDFS HDFS Federation和第二代MapReduce Yarn,具体见官网介绍。这篇文章主要介绍Hadoop源码直接编译和eclipse中编译,由于我使用的Hadoop 0.20.2,早段时间升级到1.0.4,考虑到老升级版本也不大方便,就试着自己编译。编译环境:32位ubuntu11.04,eclipse3.3主要如下

 

一、相关知识和需求软件

 

      hadoop0.20.2和1.0.4都是采用ant编译,第二代采用maven编译。

      下载ant软件,版本是1.8.3;svn软件和eclipse中svn插件,ubuntu中自动安装的sudo apt-get install subversion;ubuntu中编译tar的话还需要forrest软件,只能用版本0.8的,我用了最新版本出了错误,后面会解释

 

二、eclipse编译

 

      1、选择某一目录,即源码存放的位置,签出源码0.20.2

      如/home/pigzoo/software目录下 svn co http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.2/ hadoop-0.20.2

      2、查看源码根目录中的build.xml,这个文件就是整个软件的编译的步骤和依赖,你可以根据自己的具体情况来选择编译的部分,比如其中默认的就是compile,只编译核心部分,其他的javadoc,插件等都不会编译,先暂时编译核心部分

     在源码根目录下执行命令: ant (相当于ant complie)编译完后可以在build目录看到core等jar文件

      3、在源码跟木下执行命令 ant eclipse-files,即可产生源码eclipse工程。

      4、在eclipse中导入import上一步中源码,选择源码目录即是一个完整的eclipse工程,是不是到这一步就结束了?也许是,也许不是,我的一直存在个问题就是eclipse找不到我装的ant中lib的ant.jar,即unbound classpath variable:'ANT_HOME/lib/ant.jar,这个需要设置下eclipse的环境变量,window菜单——>preference,选择java——>build path->classpath variable中添加ANT_HOME的目录。

      5、对于1.0.4的版本步骤和以上基本一致,要注意的地方就是3步骤中的ant eclipse-files命令变成了ant eclipse,即可生成1.0.4版本对应的eclipse工程文件。

 

三、ubuntu中发行hadoop版本

 

     1、签出源码

     2、在源码根目录中,ant tar时,从build.xml中知道它依赖compile, jar, javadoc, docs, api-report, jar-test,而编译javadoc时需要forrest软件,执行下载好forrest软件,配置好系统环境

     3、安装forrest软件还会存在问题,编译一直不通过,存在错误,查看错误还是javadoc这部分,最后查看网上文档发现是forrest0.8需要jdk1.5,而发行整个版本需要jdk1.6,这个矛盾困扰了很久。当时试着用forrest0.9,但是编译还是错误。最后查看网上文档发现有个较好的解决办法,链接:http://trac.nchc.org.tw/cloud/wiki/waue/2009/0818

     4、javadoc的编译需要forrest0.8和jdk1.5,而编译core则需要jdk1.6,链接中提供的方法能够解决存在的问题。在下载好jdk1.5,配置系统jdk为1.5版本,运行这个命令,具体啥意思我也不是很清楚,如有高人看到说下吧,个人认为是forrest编译时所用的环境变量配置下,在最后的指定jdk1.5的目录。     

 

    5、编译tar,发布版本,命令如下截图。

     6、即可在build目录下看到自己编译的hadoop-***.tar.gz,这就可以部署到自己的hadoop集群。

     7、可能在编译过程中还会存在其他问题,这个主要根据build.xml这个编译文件来决定具体的情况,理清它的思路。对于我这菜鸟要好好学习下编译知识。

 

参考:

1、http://trac.nchc.org.tw/cloud/wiki/waue/2009/0818

2、http://hadoop.apache.org/releases.html

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值