一、配置编译环境
1、安装基础库
配置yum源,通过yum安装如下基础库和依赖,yum源配置可查看CentOS7 yum源配置
(1)安装GCC
yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64
(2)安装依赖
yum install -y wget openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snappy-devel fuse fuse-devel
2、安装OpenJDK
3、安装Maven
4、安装CMake
Hadoop编译要求3.12及以上版本,本文以安装CMake 3.12.4版本为例
1、下载CMake安装包
wget https://cmake.org/files/v3.12/cmake-3.12.4.tar.gz
2、解压安装包
tar -zxf cmake-3.12.4.tar.gz
3、编译安装CMake
cd cmake-3.12.4
./bootstrap
make -j8
make install
5、安装Protobuf
yum install -y protobuf protobuf-devel
protoc --version
二、编译Hadoop
1、下载Hadoop源码包
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.1/hadoop-3.1.1-src.tar.gz
2、解压源码包
tar -zxvf hadoop-3.1.1-src.tar.gz
cd hadoop-3.1.1-src
3、修改pom.xml文件
vim pom.xml
国内可以添加国内的maven源
在repositories标签的第一位添加maven仓库源:
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</repository>
<repository>
<id>huaweicloud</id>
<name>huawei maven</name>
<url>http://mirrors.huaweicloud.com/repository/maven</url>
</repository>
除了依赖仓库源,还要添加插件仓库源,pluginRepositories和repositories的节点级别一样:
<pluginRepositories>
<pluginRepository>
<id>huaweicloud-plugin</id>
<url>http://mirrors.huaweicloud.com/repository/maven</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
4、执行基础编译命令
mvn package -DskipTests -Pdist,native -Dtar -Dmaven.javadoc.skip=true
如果需要添加snappy库等其他依赖可以参考如下:
snappy库需要另外安装。
mvn package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib64 -Dbundle.snappy -Dmaven.javadoc.skip=true
编译成功后,将在源码下的“hadoop-dist/target/”目录生成tar.gz包。