1. 说明
在源码包的BUILDING.txt文件中详细了描述了编译源码所需要的依赖包和一些requirements,这里列出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)
- Zlib devel (if compiling native code)
- openssl devel ( if compiling native hadoop-pipes )
- Internet connection for first build (to fetch all Maven and Hadoop dependencies)
注:为了防止以后用到相关功能,我们所有依赖组件都进行安装。
2. 安装依赖
JDK 1.7.0_75和Maven 3.0.5都已经安装好并配置了环境变量,直接开始安装其他依赖。
2.1 Findbugs
将findbugs-1.3.9.tar.gz上传到服务器解压,修改【/etc/profile】,配置好环境变量即可。
# FINDBUGS
export FINDBUGS_HOME=/home/hadoop/compile/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin
重启生效
$ source /etc/profile
验证一下
$ findbugs -version
2.2 ProtocolBuffer
将protobuf-2.5.0.tar.gz上传到服务器解压,进入解压目录下运行如下命令进行安装:
$ sudo ./configure
$ sudo make
$ sudo make check
$ sudo make install
注:最好使用sudo来执行安装,因为这里需要往【/usr/local/bin】目录下写入文件,普通用户没有权限会安装失败,一定要确保这里是安装成功的(没有ERROR即可)!
2.3 CMake、Zlib、openssl
其他依赖直接使用yum安装即可:
$ sudo yum -y install gcc gcc-c++ autoconf automake cmake libtool ncurses-devel openssl-devel lzo-devel zlib-devel
2.4 Snappy
因为后面编译的时候需要添加对snappy本地库的支持,所以需要在这里安装snappy。将snappy-1.1.1.tar.gz上传到服务器解压重命名为snappy-1.1.1,进入【SNAPPY_HOME】目录下安装snappy
$ sudo ./configure
$ sudo make
$ sudo make install
注:一定要确保全程无Error!
如果安装成功的话进入【/usr/local/lib】目录下(默认位置),可以看到已经生成了snappy的本地库文件:
$ cd /usr/local/lib
$ ll
3. 编译
在确保以上过程都正确完成之后开始编译,将hadoop-2.5.0-cdh5.2.0-src.tar.gz上传到服务器解压,进入解压目录使用如下命令开始编译:
$ mvn clean package -Pdist,native -DskipTests -Dtar -Drequire.snappy
如果编译内存溢出的话添加环境变量
$ export MAVEN_OPTS="-Xms256m -Xmx512m"
编译后的tar包在hadoop-dist/target/目录下!