在linux下编译hadoop1.0.3

本文详细介绍了如何从SVN签出Hadoop 1.0.3源码,并在本地Linux环境中进行编译的过程。包括使用Eclipse导入源码、配置环境变量、解决编译错误等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想开始学习hadoop,所以决定从编译开始,一点一点的学习。

我是在本机用eclipse签出svn,准备在本机上查看源码进行学习,和编译环境无关。

所以首先需要从svn上签出 hadoop1.0.3源码

(1)签出源码

        svn地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.3/

(2)将源码拷贝到要进行编译的linux环境中。可以是虚拟机或者物理机。

          默认环境中有java环境、ant环境和eclipse以及可视化界面。

          如果没有请自行安装。

(3)在eclipse中编译源码

        1) 运行eclipse--》导入已有工程--》选择源码目录release-1.0.3,导入

        2)导入后,在eclipse界面中,右击build.xml,然后点击Ant build开始编译即可。

        3)编译中出现一个错误:找不到autoreconf (视机器环境而定),定位到文件中位置:

                         <target name="create-native-configure">
                             <exec executable="autoreconf" dir="${native.src.dir}" searchpath="yes" 
                                        failonerror="yes">
                                  <arg value="-if"/>
                             </exec> 
                         </target>

               解决方式:直接注释掉<exec>的内容。所有native相关包都不编译。

         4)重新编译,编译通过。

(4)采用ant编译build.xml

          默认已经安装ant环境。

         直接运行ant -file build.xml即可。同上面的问题一样,直接注释掉即可。尚未发现问题。

         说明:默认情况下其实是不编译native和c++内容的。

(5)采用ant编译源码包(这个部分内容,请参考http://blog.youkuaiyun.com/shidawen/article/details/7430328这篇博客)

        同第(4)步一样, 默认已经安装ant环境。

        运行:ant package命令,开始编译部署

      1, 遇到一个错误:'java5.home' is not defined

       解决方法:下载JDK5并部署到编译机器上,运行如下命令执行:ant package-Djava5.home=JDK5所在目录

      2,重新编译后,又遇到一个错误:forrest.home' is not defined

       解决方法:下载forrest8.0(没有试过9.0是否可以)部署到编译机器上。运行如下命令:ant package-Djava5.home=JDK5所在目录 -Dforrest.home=forrest所在目录

      编译后,完全通过,没有任何问题。在build目录下,会出现一个hadoop-1.0.4-SNAPSHOT目录,这就是最终运行的可执行目录了。可以按照hadoop部署的步骤进行部署。

       3,没有执行native和c++,build中C++目录里为空。因为hadoop默认不执行这个编译步骤,需要进行如下设置:

      ant -Dcompile.native=true -Dcompile.c++=true package-Djava5.home=JDK5所在目录 -Dforrest.home=forrest所在目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值