Ambari 3.0.0编译实战:从环境搭建到高效打包

张开发
2026/4/12 15:57:16 15 分钟阅读

分享文章

Ambari 3.0.0编译实战:从环境搭建到高效打包
1. 环境准备打造稳定的编译基础编译Ambari 3.0.0就像盖房子地基打得好才能建得稳。我推荐使用CentOS 7.9作为基础环境这个版本经过大量实践验证兼容性最好。当然如果你用其他Linux发行版原理相通只是部分命令可能需要调整。首先要把基础工具包备齐。我习惯用这个全家桶命令一次性搞定yum install -y \ git \ vim \ sudo \ rpm-build \ rpmdevtools \ python3 \ wget这里有个坑要特别注意前端依赖包下载经常超时。有次我在公司内网编译光是等yarn下载就耗了2小时。后来学聪明了提前准备好离线包mkdir -p /root/.m2/repository/com/github/eirslett/yarn/0.23.2/ wget -O /root/.m2/repository/com/github/eirslett/yarn/0.23.2/yarn-v0.23.2.tar.gz \ https://ghfast.top/https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz1.1 系统优化小技巧编译过程中最怕内存不足。建议给虚拟机分配至少8GB内存swap分区设置4GB以上。遇到过OOM内存溢出的同学应该懂我在说什么。可以用这个命令检查内存free -h如果物理机配置有限可以试试这个临时增加swap的方法编译完记得还原sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile2. 源码获取避开网络坑位获取源码看似简单实则暗藏玄机。官方仓库在GitHub但国内直连经常抽风。我推荐三种获取方式适合不同网络环境稳定版分支推荐新手git clone -b branch-3.0.0 https://ghfast.top/https://github.com/apache/ambari.git国内加速方案适合企业内网git clone -b branch-3.0.0 https://gitclone.com/github.com/apache/ambari.git尝鲜党专用拉取最新开发版git clone https://github.com/apache/ambari.git cd ambari git checkout trunk2.1 源码目录解析下载完别急着编译先了解下目录结构ambari-admin管理后台核心代码ambari-agent节点代理程序ambari-server服务端主程序ambari-web前端界面源码ambari-views自定义视图模块重点提示如果中途网络中断可以用这个命令续传git fetch --all git reset --hard origin/branch-3.0.03. 工具链配置JDK与Maven的精准搭配Ambari 3.0.0对JDK版本要求很严格必须用JDK 17。我见过有人用JDK 8编译了3小时最后报错那场面太惨了...JDK 17安装指南wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz tar -xzf openjdk-17.0.2_linux-x64_bin.tar.gz -C /usr/local/ echo export JAVA_HOME/usr/local/jdk-17.0.2 ~/.bashrc echo export PATH$JAVA_HOME/bin:$PATH ~/.bashrc source ~/.bashrcMaven 3.8.4安装wget https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz tar -xzf apache-maven-3.8.4-bin.tar.gz -C /usr/local/ echo export MAVEN_HOME/usr/local/apache-maven-3.8.4 ~/.bashrc echo export PATH$MAVEN_HOME/bin:$PATH ~/.bashrc source ~/.bashrc验证安装java -version mvn -v3.1 配置优化秘籍Maven仓库建议换国内源速度提升10倍不止。编辑~/.m2/settings.xmlmirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror内存参数调整根据机器配置修改export MAVEN_OPTS-Xms2g -Xmx4g -XX:MaxPermSize1g4. 高效编译参数化构建的艺术终于到重头戏了这是我优化过的编译命令在多核服务器上能把编译时间从2小时压缩到20分钟mvn -T 16C -B install package rpm:rpm \ -Drat.skiptrue \ -Dcheckstyle.skiptrue \ -DskipTests \ -Dspotbugs.skiptrue \ -Preplaceurl参数详解-T 16C16线程并行编译CPU利用率直接拉满-B批处理模式避免交互式提示-Drat.skiptrue跳过license检查正式环境慎用-DskipTests跳过单元测试首次编译建议保留-Preplaceurl自动替换部分依赖下载地址4.1 常见错误处理问题1Could not transfer artifact解决方法删除本地仓库对应目录后重试rm -rf ~/.m2/repository/问题包路径问题2OutOfMemoryError解决方法调整Maven内存设置export MAVEN_OPTS-Xms4g -Xmx8g问题3Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin解决方法检查JDK版本必须是175. 成果验收RPM包产出与分析编译成功后用这个命令快速定位所有生成的RPM包find . -iname *.rpm典型产出结构./ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-3.0.0.0-0.x86_64.rpm ./ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-3.0.0.0-0.x86_64.rpm ./ambari-web/target/rpm/ambari-web/RPMS/noarch/ambari-web-3.0.0.0-0.noarch.rpm5.1 安装验证技巧先装服务端sudo yum install -y ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-3.0.0.0-0.x86_64.rpm再装agentsudo yum install -y ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-3.0.0.0-0.x86_64.rpm启动前检查ambari-server setup ambari-server start最后分享个实用技巧编译完成后可以用这个命令清理中间文件节省空间mvn clean rm -rf ~/.m2/repository/org/apache/ambari

更多文章