首页 > 代码库 > (9)ubuntu下hadoop1.0.4源码编译

(9)ubuntu下hadoop1.0.4源码编译

本机环境:

ubuntu 12.04  32位
jdk 1.7

(1)maven-3.2.2的安装


首先到maven官网下载,http://maven.apache.org/,这里我下载了最新版本,maven-3.2.2

解压到/usr/local/目录下: tar -zxvf  apache-maven-3.2.2-bin.tar.gz,并重命名为maven

修改 /etc/profile:

添加一下两个变量并保存:

export M2_HOME=/usr/local/maven

export PATH=.:$M2_HOME/bin:$PATH

然后在终端上输入:source /etc/profile

测试是否安装成功,在终端输入:mvn  -v,如果出现下面提示表示安装成功:



(2)ant-1.9.4的安装

首先到Ant的官方网站下载,http://ant.apache.org/, 这里我下载最新版本,ant-1.9.4

解压到/usr/local/目录下: tar -zxvf  apache-ant-1.9.4-bin.tar.gz,并重命名为ant

修改 /etc/profile:

添加一下两个变量并保存:

export ANT_HOME=/usr/local/ant

export PATH=.:$ANT_HOME/bin:$PATH

然后在终端上输入:source /etc/profile

测试是否安装成功,在终端输入:ant  -version,如果出现下面提示表示安装成功:



(3)protobuf-2.5.0的安装

首先到protobuf官方网站下载,https://code.google.com/p/protobuf/downloads/list,这里我下载最新版本,protobuf-2.5.0。

解压到/usr/local/目录下: tar -zxvf  protobuf-2.5.0.tar.gz,并重命名为protobuf

在进行下一步安装之前,我们要把一些必要的库或软件安装上:

apt-get install build-essential

apt-get install autoconf

apt-get install automake

apt-get install libtool

接下来按照:A、./configure  B、make  C、make check  D、make install的步骤安装。


(4)jdk1.6安装

这里见前面的文章即可,不在重复叙述。最好不要装jdk1.7,会有一些兼容性问题导致不能安装成功。



(5)下载hadoop1.0.4源码并进行编译

源码的下载可以到 https://github.com/apache/hadoop-common/releases,hadoop-common-release-1.0.4.tar.gz下载,要标有rc标志的才是源码,一般都是20多M,已编译好的一般有60M。

解压:tar -zxvf  hadoop-common-release-1.0.4.tar.gz,

然后进入hadoop目录,输入:ant package。

不过呢,编译1,2分钟后,就显示BUILD FAILED了。错误信息如下:

<span style="color:#ff0000;">java5.check:

BUILD FAILED
/usr/local/hadoop-common-release-1.0.4/build.xml:1343: 'java5.home' is not defined.  Forrest requires Java 5.  Please pass -Djava5.home=<base of Java 5 distribution> to Ant on the command-line.

Total time: 2 minutes 12 seconds</span>
说是要我们在ant package命令之后添加-Djava5.home=<jdk5的安装路径>。也就是说要我们安装java5,可能是hadoop1.0.4版本比较旧的关系,要求的jdk也比较旧,这里,有两个解决方案:

方案1:当然就是安装java5,然后再输入命令后面加入java5安装路径,ant package -Djava5.home=<jdk5安装路径>。

方案2:进入hadoop源码目录,找到build.xml注释某一段代码,可以让我们忽略这一个警告,我就是用方案2实现的。


build.xml:


接下来,我们再重新编译:ant package

这次,我们又碰上编译失败,不过这次不是提示上一次的错误信息了,让我们看看这次是什么错误:

<span style="color:#ff0000;">BUILD FAILED
/usr/local/hadoop-common-release-1.0.4/build.xml:1598: The following error occurred while executing this line:
/usr/local/hadoop-common-release-1.0.4/build.xml:2781: exec returned: 2

Total time: 2 minutes 10 seconds</span>
这是一个网上已经解决的bug,解决方案:

到Hadoop源码目录下找到src/c++/task-controller/configure.ac文件,

找到AC_SYS_LARGEFILE这一行,注释掉即可。

重新编译ant package,这次终于成功了!


进入build文件夹,可以发现多了个hadoop-1.0.4-SNAPSHOT文件夹,这个就是我们已经编译好的hadoop文件,进入看可以发现和网上提供的hadoop文件时一样的。


我们现在就可以使用这个hadoop文件进行部署开发了。


参考:

(1)http://my.oschina.net/quanzl/blog/172816

(2)http://f.dataguru.cn/thread-34452-1-1.html

(3)http://my.oschina.net/zhujinbao/blog/54383

(4)http://www.aboutyun.com/thread-6504-1-1.html





(9)ubuntu下hadoop1.0.4源码编译