一.在Hadoop官网上下载源码包
1. 在 Hadoop官网上下载hadoop-2.7.2的源码包,下载地址: http://mirrors.noc.im/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz
2. 把下载下来的源码包,上传到linux上,在这里我放在了/home/soft/下
二.准备linux上运行环境
1. 上传jdk、ant、maven、protobuf等到到linux上,在这里我放在了/home/soft/下
2. 安装jdk
使用命令:rpm -ivh jdk-7u67-linux-x64.rpm
安装完后配置环境变量,修改/etc/profile文件,命令:vi /etc/profile
在最后添加内容:
export JAVA_HOME=/usr/ Java /jdk1.7.0_67/
export PATH=$PATH:$JAVA_HOME/bin
使用命令生效:source /etc/profile
测试:java -version
3.安装maven
解压maven到/opt/目录下,并配置环境变量
解压命令:tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /opt/
修改/etc/profile文件,在文件末尾新增下面两行内容:
export MAVEN_HOME=/opt/apache-maven-3.3.9
export PATH= $PATH:$ MAVEN_HOME/bin
使用命令生效:source /etc/profile
4.安装g++
安装命令:yum -y install gcc gcc-c++
5.安装protobuf
解压protobuf到当前目录
解压命令:tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0/
编译安装
预编译命令:./configure –prefix=/opt/protobuf-2.5
编译和安装命令:make && make install
配置环境变量,修改/etc/profile文件,末尾添加下面两行内容:
export PROTOBUF_HOME=/opt/protobuf-2.5
export PATH=$PATH:$ PROTOBUF_HOME/bin
使用命令生效:source /etc/profile
6.安装openssl
安装命令:yum -y install openssl-devel
7.安装cmake
安装命令:yum -y install cmake
8.安装ant
解压maven到/opt/目录下,并配置环境变量
解压命令:tar -zxvf apache-ant-1.9.7-bin.tar.gz -C /opt/
修改/etc/profile文件,在文件末尾新增下面两行内容:
export ANT_HOME=/opt/apache-ant-1.9.7/
export PATH=$PATH:$ ANT_HOME/bin
使用命令生效:source /etc/profile
三.编译
1.解压hadoop-2.7.2 tar包
解压命令:tar -zxvf hadoop-2.7.2-src.tar.gz
2.编译
cd hadoop-2.7.2-src
编译命令:mvn package -Pdist,native -DskipTests -Dtar
3.编译成功并查看
编译完成后,在hadoop-dist/target/目录下查看,会有hadoop-2.7.2.tar.gz这个文件
四.问题总结
编译过程中会报各种错,可以直接终止编译,在重新执行编译,多执行几次就可以了,一般都是因为网络原因jar包下载有问题或maven仓库连接超时等原因,我共执行了5次就成功了。在说明下,我在用root用户执行编译的,如果用其他的用户编译可能会存在权限问题。