hadoop2.x的编译过程总结
所有编译过程都可以在说明xml中得到有关信息,要进行编译的目的是,hadoop2.x中的lib包是32位的,而我们实际学习和生产的机器大都是64位,这使得我们要重新进行编译。
1.准备工作
a) hadoop2.x的源码包,这里以hadoop-2.4.1-src.tar.gz为例。
b) apache-maven-3.0.5-bin.tar.gz
c) findbugs-1.3.9.tar.gz
d) protobuf-2.5.0.tar.gz
e) jdk-7u67-linux-x64.tar.gz
通过查看hadoop-2.4.1-src包下的BUILDING.txt文件,可以看到编译有关的详细说明,下面我摘出重点部分一起解读下:
列出的是编译Hadoop所需要的前提准备环境
Build instructions for Hadoop(Hadoop编译说明书)
Requirements:
- Unix System
- JDK 1.6+
- Maven 3.0 or later
- Findbugs 1.3.9 (if running findbugs)
- ProtocolBuffer 2.5.0
- CMake 2.6 or newer (if compiling native code)
- Internet connection for first build (to fetch all Maven and Hadoop dependencies)
2.开始安装编译环境
2.1编译前安装依赖包:
安装Linux系统包(需连接internet)
a) yum install autoconf automake libtool cmake
b) yum install ncurses-devel
c) yum install openssl-devel
d) yum install lzo-devel zlib-devel gcc gcc-c++
2.2解压步骤1中的所有源码包,在编译hadoop2.x时,需要安装编译环境。
a) JDK编译环境安装
将jdk-7u67-linux-x64.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
`export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin`
b) MAVEN环境安装
将apache-maven-3.0.5-bin.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
`export MAVEN_HOME=/home/elon/opt/modules/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin`
c) FINDBUGS环境安装
将findbugs-1.3.9.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
`export FINDBUGS_HOME=/home/elon/opt/modules/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin`
d) PROTOBUF环境安装
将protobuf-2.5.0.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
`export PROTOBUF_HOME=/home/elon/opt/modules/protobuf-2.5.0`
进入安装目录,进行配置,执行命令:
./configure
安装命令:
make
make check
make install
3.编译源码
通过查阅BUILDING.txt,获知编译命令:
Create binary distribution with native code without documentation:
(在本地创建二进制发行版,并携带本地代码以及不包括文档,当机器是64bit时,编译出来的本地库就是适用于64bit机的)
$ mvn package -Pdist,native -DskipTests -Dtar