首页 > 代码库 > (9)ubuntu下hadoop1.0.4源码编译
(9)ubuntu下hadoop1.0.4源码编译
本机环境:
(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源码编译