OS环境:SUSE Linux Enterpriser Server 11 SP2 (64位)
Mission:由于apache官网所提供的编译好的Hadoop-2.2.0-tar.gz 只兼容32位系统,安装在64位系统下会出现各种兼容性错误。故,需要在64位系统下,对hadoop-2.2.0源码进行重新编译。
START:
准备工作:
步骤 :
1、安装JDK
在oracle官网下载 最新的jdk包,eg:jdk-7u45-linux-x64.tar.gz
解压,安装,添加环境变量。
测试:java -version
2、安装maven
在apache官网上下载最新maven包,eg:apache-maven-3.1.1-bin.tar.gz
解压,安装,添加环境变量。
测试:mvn -version
3、为suse 添加软件源(方便用zypper命令安装各种包)
打开:yast -> Software Repositories ->Add->next->填写“源“的URL,以及给Repository命名-〉next
具体参照网页:
4、安装protobuf
首先用zypper命令安装protobuf所需要的依赖包:gcc*
sudo zypper install gcc*
然后下载最新的 protobuf包,解压,安装,设置环境变量
测试:protoc --version
5、检查与安装必要的依赖包(hadoop编译需要)
cmake,openssl-devel,ncurses-devel、autoconf、automake、libtool
6、下载hadoop-2.2.0源码:hadoop-2.2.0-src.tar.gz
解压
由于hadoop-2.2.0源码包解压出来的code有个bug 需要patch后才能编译:
按照上述官方patch,修改文件:hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml
7、在开始编译hadoop-2.2.0源码之前,建议先测试以上各种包是否安装成功
如果之前修改过/etc/profile ,最好在编译hadoop的终端上 source /etc/profile
然后cd进入hadoop-2.2.0源码解压目录中,开始编译(建议换到root权限下编译)
mvn package -Pdist,native -DskipTests -Dtar
等待大约30分钟,编译成功。
编译后的包在:hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0.tar.gz