1. Hadoop源代码编译

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]
[INFO] Apache Hadoop YARN Server Tests .................... SUCCESS [  0.786 s]
[INFO] Apache Hadoop YARN Client .......................... SUCCESS [  3.629 s]
[INFO] Apache Hadoop YARN SharedCacheManager .............. SUCCESS [  2.019 s]
[INFO] Apache Hadoop YARN Timeline Plugin Storage ......... SUCCESS [  1.810 s]
[INFO] Apache Hadoop YARN TimelineService HBase Backend ... SUCCESS [  0.022 s]
[INFO] Apache Hadoop YARN TimelineService HBase Common .... SUCCESS [  2.797 s]
[INFO] Apache Hadoop YARN TimelineService HBase Client .... SUCCESS [  2.986 s]
[INFO] Apache Hadoop YARN TimelineService HBase Servers ... SUCCESS [  0.022 s]
[INFO] Apache Hadoop YARN TimelineService HBase Server 1.2  SUCCESS [  2.808 s]
[INFO] Apache Hadoop YARN TimelineService HBase tests ..... SUCCESS [  1.266 s]
[INFO] Apache Hadoop YARN Router .......................... SUCCESS [  2.729 s]
[INFO] Apache Hadoop YARN Applications .................... SUCCESS [  0.023 s]
[INFO] Apache Hadoop YARN DistributedShell ................ SUCCESS [  1.932 s]
[INFO] Apache Hadoop YARN Unmanaged Am Launcher ........... SUCCESS [  1.455 s]
[INFO] Apache Hadoop MapReduce Client ..................... SUCCESS [  0.273 s]
[INFO] Apache Hadoop MapReduce Core ....................... SUCCESS [ 10.025 s]
[INFO] Apache Hadoop MapReduce Common ..................... SUCCESS [  7.931 s]
[INFO] Apache Hadoop MapReduce Shuffle .................... SUCCESS [  2.571 s]
[INFO] Apache Hadoop MapReduce App ........................ SUCCESS [  5.119 s]
[INFO] Apache Hadoop MapReduce HistoryServer .............. SUCCESS [  3.203 s]
[INFO] Apache Hadoop MapReduce JobClient .................. SUCCESS [  3.632 s]
[INFO] Apache Hadoop Mini-Cluster ......................... SUCCESS [  0.654 s]
[INFO] Apache Hadoop YARN Services ........................ SUCCESS [  0.021 s]
[INFO] Apache Hadoop YARN Services Core ................... SUCCESS [  1.571 s]
[INFO] Apache Hadoop YARN Services API .................... SUCCESS [  0.980 s]
[INFO] Apache Hadoop Image Generation Tool ................ SUCCESS [  2.011 s]
[INFO] Yet Another Learning Platform ...................... SUCCESS [  2.357 s]
[INFO] Apache Hadoop YARN Site ............................ SUCCESS [  0.022 s]
[INFO] Apache Hadoop YARN UI .............................. SUCCESS [  0.022 s]
[INFO] Apache Hadoop YARN Project ......................... SUCCESS [  5.561 s]
[INFO] Apache Hadoop MapReduce HistoryServer Plugins ...... SUCCESS [  1.307 s]
[INFO] Apache Hadoop MapReduce NativeTask ................. SUCCESS [  2.416 s]
[INFO] Apache Hadoop MapReduce Uploader ................... SUCCESS [  1.420 s]
[INFO] Apache Hadoop MapReduce Examples ................... SUCCESS [  3.028 s]
[INFO] Apache Hadoop MapReduce ............................ SUCCESS [  2.876 s]
[INFO] Apache Hadoop MapReduce Streaming .................. SUCCESS [  2.811 s]
[INFO] Apache Hadoop Distributed Copy ..................... SUCCESS [  2.724 s]
[INFO] Apache Hadoop Archives ............................. SUCCESS [  1.564 s]
[INFO] Apache Hadoop Archive Logs ......................... SUCCESS [  1.690 s]
[INFO] Apache Hadoop Rumen ................................ SUCCESS [  3.157 s]
[INFO] Apache Hadoop Gridmix .............................. SUCCESS [  2.533 s]
[INFO] Apache Hadoop Data Join ............................ SUCCESS [  1.856 s]
[INFO] Apache Hadoop Extras ............................... SUCCESS [  1.680 s]
[INFO] Apache Hadoop Pipes ................................ SUCCESS [  0.017 s]
[INFO] Apache Hadoop OpenStack support .................... SUCCESS [  2.412 s]
[INFO] Apache Hadoop Amazon Web Services support .......... SUCCESS [  5.814 s]
[INFO] Apache Hadoop Kafka Library support ................ SUCCESS [  1.419 s]
[INFO] Apache Hadoop Azure support ........................ SUCCESS [  4.446 s]
[INFO] Apache Hadoop Aliyun OSS support ................... SUCCESS [  2.002 s]
[INFO] Apache Hadoop Client Aggregator .................... SUCCESS [  1.318 s]
[INFO] Apache Hadoop Scheduler Load Simulator ............. SUCCESS [  2.667 s]
[INFO] Apache Hadoop Resource Estimator Service ........... SUCCESS [  2.524 s]
[INFO] Apache Hadoop Azure Data Lake support .............. SUCCESS [  1.819 s]
[INFO] Apache Hadoop Tools Dist ........................... SUCCESS [  8.744 s]
[INFO] Apache Hadoop Tools ................................ SUCCESS [  0.018 s]
[INFO] Apache Hadoop Client API ........................... SUCCESS [01:08 min]
[INFO] Apache Hadoop Client Runtime ....................... SUCCESS [ 59.522 s]
[INFO] Apache Hadoop Client Packaging Invariants .......... SUCCESS [  0.131 s]
[INFO] Apache Hadoop Client Test Minicluster .............. SUCCESS [01:42 min]
[INFO] Apache Hadoop Client Packaging Invariants for Test . SUCCESS [  0.103 s]
[INFO] Apache Hadoop Client Packaging Integration Tests ... SUCCESS [  0.056 s]
[INFO] Apache Hadoop Distribution ......................... SUCCESS [ 17.631 s]
[INFO] Apache Hadoop Client Modules ....................... SUCCESS [  0.021 s]
[INFO] Apache Hadoop Cloud Storage ........................ SUCCESS [  0.268 s]
[INFO] Apache Hadoop Cloud Storage Project ................ SUCCESS [  0.019 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
二. docker编译

Hadoop源代码目录中的start-build-env.sh就是实现docker编译的。

[root@localhost hadoop-3.2.4-src]# ls start-build-env.sh
start-build-env.sh

该脚本会从将编译所需的依赖和环境打入hadoop-build镜像,最后运行Docker镜像并挂载当前用户目录下的.m2和当前的hadoop源代码路径。
在这里插入图片描述然后执行mvn编译命令

mvn package -Pdist,native -DskipTests -Dtar

编译过程会持续一段时间

[INFO] Apache Hadoop Main ................................. SUCCESS [02:22 min]
[INFO] Apache Hadoop Build Tools .......................... SUCCESS [01:31 min]
[INFO] Apache Hadoop Project POM .......................... SUCCESS [ 32.877 s]
[INFO] Apache Hadoop Annotations .......................... SUCCESS [ 21.579 s]
[INFO] Apache Hadoop Assemblies ........................... SUCCESS [  0.103 s]
[INFO] Apache Hadoop Project Dist POM ..................... SUCCESS [01:07 min]
[INFO] Apache Hadoop Maven Plugins ........................ SUCCESS [03:40 min]
[INFO] Apache Hadoop MiniKDC .............................. SUCCESS [01:15 min]
[INFO] Apache Hadoop Auth ................................. SUCCESS [06:11 min]
[INFO] Apache Hadoop Auth Examples ........................ SUCCESS [  7.731 s]
[INFO] Apache Hadoop Common ............................... SUCCESS [04:06 min]
[INFO] Apache Hadoop NFS .................................. SUCCESS [  3.301 s]
[INFO] Apache Hadoop KMS .................................. SUCCESS [ 15.412 s]
[INFO] Apache Hadoop Common Project ....................... SUCCESS [  0.026 s]
[INFO] Apache Hadoop HDFS Client .......................... SUCCESS [02:22 min]
[INFO] Apache Hadoop HDFS ................................. SUCCESS [ 44.515 s]
[INFO] Apache Hadoop HDFS Native Client ................... SUCCESS [ 17.570 s]
[INFO] Apache Hadoop HttpFS ............................... SUCCESS [  9.251 s]
[INFO] Apache Hadoop HDFS-NFS ............................. SUCCESS [  1.817 s]
[INFO] Apache Hadoop HDFS-RBF ............................. SUCCESS [ 11.379 s]
[INFO] Apache Hadoop HDFS Project ......................... SUCCESS [  0.028 s]
[INFO] Apache Hadoop YARN ................................. SUCCESS [  0.029 s]
[INFO] Apache Hadoop YARN API ............................. SUCCESS [ 10.845 s]
[INFO] Apache Hadoop YARN Common .......................... SUCCESS [01:51 min]
[INFO] Apache Hadoop YARN Registry ........................ SUCCESS [  3.109 s]
[INFO] Apache Hadoop YARN Server .......................... SUCCESS [  0.028 s]
[INFO] Apache Hadoop YARN Server Common ................... SUCCESS [ 32.898 s]
[INFO] Apache Hadoop YARN NodeManager ..................... SUCCESS [  7.072 s]
[INFO] Apache Hadoop YARN Web Proxy ....................... SUCCESS [  7.745 s]
[INFO] Apache Hadoop YARN ApplicationHistoryService ....... SUCCESS [ 16.790 s]
[INFO] Apache Hadoop YARN Timeline Service ................ SUCCESS [  7.982 s]
[INFO] Apache Hadoop YARN ResourceManager ................. SUCCESS [  9.925 s]
[INFO] Apache Hadoop YARN Server Tests .................... SUCCESS [  0.713 s]
[INFO] Apache Hadoop YARN Client .......................... SUCCESS [  2.911 s]
[INFO] Apache Hadoop YARN SharedCacheManager .............. SUCCESS [  1.936 s]
[INFO] Apache Hadoop YARN Timeline Plugin Storage ......... SUCCESS [  1.716 s]
[INFO] Apache Hadoop YARN TimelineService HBase Backend ... SUCCESS [  0.023 s]
[INFO] Apache Hadoop YARN TimelineService HBase Common .... SUCCESS [ 39.475 s]
[INFO] Apache Hadoop YARN TimelineService HBase Client .... SUCCESS [01:36 min]
[INFO] Apache Hadoop YARN TimelineService HBase Servers ... SUCCESS [  0.020 s]
[INFO] Apache Hadoop YARN TimelineService HBase Server 1.2  SUCCESS [  2.411 s]
[INFO] Apache Hadoop YARN TimelineService HBase tests ..... SUCCESS [01:53 min]
[INFO] Apache Hadoop YARN Router .......................... SUCCESS [  2.402 s]
[INFO] Apache Hadoop YARN Applications .................... SUCCESS [  0.021 s]
[INFO] Apache Hadoop YARN DistributedShell ................ SUCCESS [  1.586 s]
[INFO] Apache Hadoop YARN Unmanaged Am Launcher ........... SUCCESS [  1.206 s]
[INFO] Apache Hadoop MapReduce Client ..................... SUCCESS [  0.094 s]
[INFO] Apache Hadoop MapReduce Core ....................... SUCCESS [ 17.299 s]
[INFO] Apache Hadoop MapReduce Common ..................... SUCCESS [  6.998 s]
[INFO] Apache Hadoop MapReduce Shuffle .................... SUCCESS [  2.245 s]
[INFO] Apache Hadoop MapReduce App ........................ SUCCESS [  4.041 s]
[INFO] Apache Hadoop MapReduce HistoryServer .............. SUCCESS [  2.570 s]
[INFO] Apache Hadoop MapReduce JobClient .................. SUCCESS [  2.555 s]
[INFO] Apache Hadoop Mini-Cluster ......................... SUCCESS [  1.079 s]
[INFO] Apache Hadoop YARN Services ........................ SUCCESS [  0.024 s]
[INFO] Apache Hadoop YARN Services Core ................... SUCCESS [ 11.386 s]
[INFO] Apache Hadoop YARN Services API .................... SUCCESS [  0.592 s]
[INFO] Apache Hadoop Image Generation Tool ................ SUCCESS [ 11.307 s]
[INFO] Yet Another Learning Platform ...................... SUCCESS [  2.023 s]
[INFO] Apache Hadoop YARN Site ............................ SUCCESS [  0.022 s]
[INFO] Apache Hadoop YARN UI .............................. SUCCESS [  0.021 s]
[INFO] Apache Hadoop YARN Project ......................... SUCCESS [  6.137 s]
[INFO] Apache Hadoop MapReduce HistoryServer Plugins ...... SUCCESS [  1.326 s]
[INFO] Apache Hadoop MapReduce NativeTask ................. SUCCESS [  3.104 s]
[INFO] Apache Hadoop MapReduce Uploader ................... SUCCESS [  1.032 s]
[INFO] Apache Hadoop MapReduce Examples ................... SUCCESS [  2.547 s]
[INFO] Apache Hadoop MapReduce ............................ SUCCESS [  3.241 s]
[INFO] Apache Hadoop MapReduce Streaming .................. SUCCESS [ 10.497 s]
[INFO] Apache Hadoop Distributed Copy ..................... SUCCESS [  2.062 s]
[INFO] Apache Hadoop Archives ............................. SUCCESS [  0.997 s]
[INFO] Apache Hadoop Archive Logs ......................... SUCCESS [  1.028 s]
[INFO] Apache Hadoop Rumen ................................ SUCCESS [  2.890 s]
[INFO] Apache Hadoop Gridmix .............................. SUCCESS [  1.633 s]
[INFO] Apache Hadoop Data Join ............................ SUCCESS [  1.147 s]
[INFO] Apache Hadoop Extras ............................... SUCCESS [  1.043 s]
[INFO] Apache Hadoop Pipes ................................ SUCCESS [  0.163 s]
[INFO] Apache Hadoop OpenStack support .................... SUCCESS [  2.074 s]
[INFO] Apache Hadoop Amazon Web Services support .......... SUCCESS [01:47 min]
[INFO] Apache Hadoop Kafka Library support ................ SUCCESS [ 17.088 s]
[INFO] Apache Hadoop Azure support ........................ SUCCESS [ 22.191 s]
[INFO] Apache Hadoop Aliyun OSS support ................... SUCCESS [ 35.538 s]
[INFO] Apache Hadoop Client Aggregator .................... SUCCESS [  3.718 s]
[INFO] Apache Hadoop Scheduler Load Simulator ............. SUCCESS [  2.887 s]
[INFO] Apache Hadoop Resource Estimator Service ........... SUCCESS [  9.247 s]
[INFO] Apache Hadoop Azure Data Lake support .............. SUCCESS [ 15.362 s]
[INFO] Apache Hadoop Tools Dist ........................... SUCCESS [  9.968 s]
[INFO] Apache Hadoop Tools ................................ SUCCESS [  0.020 s]
[INFO] Apache Hadoop Client API ........................... SUCCESS [01:26 min]
[INFO] Apache Hadoop Client Runtime ....................... SUCCESS [ 56.014 s]
[INFO] Apache Hadoop Client Packaging Invariants .......... SUCCESS [  1.935 s]
[INFO] Apache Hadoop Client Test Minicluster .............. SUCCESS [01:49 min]
[INFO] Apache Hadoop Client Packaging Invariants for Test . SUCCESS [  0.108 s]
[INFO] Apache Hadoop Client Packaging Integration Tests ... SUCCESS [  0.088 s]
[INFO] Apache Hadoop Distribution ......................... SUCCESS [ 23.529 s]
[INFO] Apache Hadoop Client Modules ....................... SUCCESS [  0.027 s]
[INFO] Apache Hadoop Cloud Storage ........................ SUCCESS [  0.486 s]
[INFO] Apache Hadoop Cloud Storage Project ................ SUCCESS [  0.019 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  45:54 min
[INFO] Finished at: 2022-09-21T02:52:35Z
[INFO] ------------------------------------------------------------------------
root@b02a56c5b219:~/hadoop#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值