Hadoop现在提供了两种源代码编译方式,手动编译和docker编译。
- 手动编译:自己手动安装Hadoop编译所需的各种依赖包,缺点是工作量较大且存在依赖冲突的风险。
- docker编译:编译Hadoop所需的依赖会提前打入docker镜像,缺点是需要额安装docker,优点是一键部署编译环境,不用担心各种库不兼容等问题,编译失败率低。
一. 手动编译
1.编译环境与依赖
操作系统:centos7
JDK:1.8
maven:3.8.6
cmake:3.13.0
protobuf:2.5.0
hadoop:3.2.4
2.安装依赖
1.安装gcc,g++
yum install -y gcc
yum install -y gcc-c++
# 验证是否安装成功
gcc -v
g++ -v
2.安装JDK
tar xf jdk1.8.0_144.tar.gz -C /opt/java
# 添加环境变量
vim /etc/profile
export JAVA_HOME=/opt/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
# 验证是否安装成功
source /etc/profile
java -version
3.安装maven
tar vf apache-maven-3.8.6.tar.gz -C /opt
# 添加环境变量
vim /etc/profile
export MAVEN_HOME=/opt/apache-maven-3.8.6
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
# 验证是否安装成功
source /etc/profile
mvn -v
4.安装cmake
tar xf cmake-3.13.0.tar.gz -C /opt
cd /opt/cmake-3.13.0
./bootstrap
# 编译并安装
gmake & gmake install
# 验证是否安装成功
cmake -version
5.安装Protobuf
tar xf protobuf-2.5.0.tar.gz -C /opt
cd /opt/protobuf-2.5.0
./configure
# 编译并安装
make & make install
# 验证是否安装成功
protoc --version
3.编译
1.解压hadoop源代码包
tar xf hadoop-3.2.4-src.tar.gz -C /root
2.修改maven仓库地址
默认的maven仓库地址下载速度可能比较慢,建议更换成阿里云的镜像。
vim /opt/apache-maven-3.8.6/conf/settings.xml
# 添加如下内容
<mirror>
<id>alimaven-central</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
3.编译
cd /root/hadoop-3.2.4-src
# 执行mvn构建
mvn clean package -Pdist -DskipTests -Dtar
如果中途编译失败,请重复执行这个命令,直到成功,一般第一次编译会比较费时间,耐心等待即可,编译成功如下所示。
[INFO] Reactor Summary for Apache Hadoop Main 3.2.4:
[INFO]
[INFO] Apache Hadoop Main ................................. SUCCESS [ 0.772 s]
[INFO] Apache Hadoop Build Tools .......................... SUCCESS [ 0.645 s]
[INFO] Apache Hadoop Project POM .......................... SUCCESS [ 0.940 s]
[INFO] Apache Hadoop Annotations .......................... SUCCESS [ 2.138 s]
[INFO] Apache Hadoop Assemblies ........................... SUCCESS [ 0.101 s]
[INFO] Apache Hadoop Project Dist POM ..................... SUCCESS [ 1.026 s]
[INFO] Apache Hadoop Maven Plugins ........................ SUCCESS [ 2.941 s]
[INFO] Apache Hadoop MiniKDC .............................. SUCCESS [ 1.288 s]
[INFO] Apache Hadoop Auth ................................. SUCCESS [ 3.870 s]
[INFO] Apache Hadoop Auth Examples ........................ SUCCESS [ 1.605 s]
[INFO] Apache Hadoop Common ............................... SUCCESS [ 35.941 s]
[INFO] Apache Hadoop NFS .................................. SUCCESS [ 3.172 s]
[INFO] Apache Hadoop KMS .................................. SUCCESS [ 2.971 s]
[INFO] Apache Hadoop Common Project ....................... SUCCESS [ 0.035 s]
[INFO] Apache Hadoop HDFS Client .......................... SUCCESS [ 17.597 s]
[INFO] Apache Hadoop HDFS ................................. SUCCESS [ 34.465 s]
[INFO] Apache Hadoop HDFS Native Client ................... SUCCESS [ 1.089 s]
[INFO] Apache Hadoop HttpFS ............................... SUCCESS [ 3.900 s]
[INFO] Apache Hadoop HDFS-NFS ............................. SUCCESS [ 2.267 s]
[INFO] Apache Hadoop HDFS-RBF ............................. SUCCESS [ 11.426 s]
[INFO] Apache Hadoop HDFS Project ......................... SUCCESS [ 0.027 s]
[INFO] Apache Hadoop YARN ................................. SUCCESS [ 0.029 s]
[INFO] Apache Hadoop YARN API ............................. SUCCESS [ 11.349 s]
[INFO] Apache Hadoop YARN Common .......................... SUCCESS [ 20.098 s]
[INFO] Apache Hadoop YARN Registry ........................ SUCCESS [ 2.924 s]
[INFO] Apache Hadoop YARN Server .......................... SUCCESS [ 0.025 s]
[INFO] Apache Hadoop YARN Server Common ................... SUCCESS [ 6.946 s]
[INFO] Apache Hadoop YARN NodeManager ..................... SUCCESS [ 8.408 s]
[INFO] Apache Hadoop YARN Web Proxy ....................... SUCCESS [ 2.258 s]
[INFO] Apache Hadoop YARN ApplicationHistoryService ....... SUCCESS [ 3.465 s]
[INFO] Apache Hadoop YARN Timeline Service ................ SUCCESS [ 2.850 s]
[INFO] Apache Hadoop YARN ResourceManager ................. SUCCESS [ 13.609 s]

本文详细介绍了Hadoop的两种编译方式:手动编译和docker编译。手动编译需自行安装依赖,如JDK、maven等,并调整maven仓库以提高下载速度。docker编译则通过预置依赖的镜像简化流程,一键部署编译环境。
最低0.47元/天 解锁文章
2498

被折叠的 条评论
为什么被折叠?



