环境:Centos7(有图形界面)
工具:docker1.13、maven3.6.0、jdk1.8、idea
因编译Hadoop源码所需环境比较复杂,在hadoop源码根目录文件start-build-env.sh 提供了所需环境的docker容器。
步骤:
一、安装docker
#1.安装
yum install -y docker
#2.设置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ntwp2suv.mirror.aliyuncs.com"]
}
EOF
#3.启动docker
systemctl enable docker;systemctl start docker
安装完后可能要关闭swap
swapoff -a
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
二、进入hadoop源码根目录运行
./start-build-env.sh
加载docker容器的时候可能会提示类似于root存在于group之类的英文提示(原文不记得了),注释这两行
三、在容器中编译源码
容器加载完后会直接进入容器
然后采用mvn编译源码
mvn package -Pdist -DskipTests -Dtar
源码在idea中打开会提示rpc相关的包不存在,运行
mvn install -DskipTests
前前后后折腾的时间比较久,可能有中间的处理过程不记得了,欢迎交流;有活跃的hadoop源码交流群或者社区,欢迎推荐。
参考《hadoop技术内幕:深入解析YARN架构设计与实现原理》