Hadoop的编译
官方提供的安装包不支持压缩,并且可以和自己的系统环境配置不一致,所以Hadoop需要自己进行编译安装。
1 准备编译环境
# 安装并配置JDK环境
## 解压到指定目录
tar -zxvf jdk-xxxx-linux-x64.tar.gz -C /usr/local/
## 配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk-xxxx
export PATH=$PATH:$JAVA_HOME/bin
## 加载环境变量
source /etc/profile
# 安装Maven并配置Maven环境
cd /usr/local
## 解压
unzip apache-maven-x.x.x-bin.zip
## 配置环境变量
vim /etc/profile
export M2_HOME=/usr/local/apache-maven-x.x.x
export MAVEN_OPTS="-Xms1024m -Xmx2048m"
export PATH=$PATH:$M2_HOME/bin
## 刷新环境变量
source /etc/profile
## 配置远程镜像
vim /usr/local/apache-maven-x.x.x/conf/settings.xml
## 添加
<mirror>
<id>cloudera</id>
<mirrorOf>cloudera-repos</mirrorOf>
<name>cloudera maven</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</mirror>
# 安装findbugs并且配置环境变量
## 解压到指定目录
tar -zxvf findbugs-x.x.x.tar.gz -C /usr/local/
## 配置环境变量
vim /etc/profile
# FINDBUGS_HOME
export FINDBUGS_HOME=/usr/local/findbugs-x.x.x
export PATH=$PATH:$FINDBUGS_HOME/bin
## 刷新环境变量
source /etc/profile
# 安装Protobuff
## 安装环境依赖
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++ bzip2-devel
## 解压到指定目录
tar -zxvf protobuf-x.x.x.tar.gz -C /usr/local/
cd /usr/local/protobuf-x.x.x
## 检查编译环境
./configure
## 编译
make && make install
# 安装snappy
## 解压到指定目录
tar -zxvf snappy-x.x.x.tar.gz -C /usr/local/
cd /usr/local/snappy-x.x.x
## 检查编译环境
./configure
## 编译
make && make install
2 编译Hadoop
## 解压源码到指定目录
tar -zxvf hadoop-x.x.x-cdhx.x.x-src.tar.gz -C /usr/local/
cd /usr/local/hadoop-x.x.x-cdhx.x.x
## 编译不支持snappy压缩
mvn package -Pdist,native -DskipTests –Dtar
## 编译支持snappy压缩
mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
## 编译成功的话在jar包在/usr/local/hadoop-x.x.x-cdhx.x.x/hadoop-dist/target/hadoop-x.x.x-cdhx.x.x.tar.gz
## 如果报错出现Tomcat下载不下来可以手动放置重新编译即可
cp apache-tomcat-x.x.x.tar.gz /usr/local/hadoop-x.x.x-cdhx.x.x/hadoop-common-project/hadoop-kms/downloads/
cp apache-tomcat-x.x.xx.tar.gz /usr/local/hadoop-x.x.x-cdhx.x.x/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/