TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 开发环境

  • Ambari 编译

  • Bigtop 编译

  • Ambari 源码编译

    • Ambari Views

    • Ambari

      • 二次开发技巧

      • 使用Ambari-Env编译

      • 适用于Kylin V10-x86_64

      • 适用于Ubuntu22.04

      • 适用于Rocky8.10

        • Ambari编译——教程大纲
          • 环境准备与依赖梳理
          • 背景说明
          • 环境准备与依赖梳理
          • 1. 常见全量编译命令
          • 2. 编译前代码微调——Node.js镜像与脚本
          • 3. Yarn包EOF报错的彻底解决
          • 4. Python版本适配与虚拟环境隔离
          • 5. Rocky 特有的 rpm 策略放宽与兼容方案
            • 5.1 忽略 shebang 检查
            • 5.2 agent/server 子模块构建报错应对
          • 6. 编译结果校验与 rpm 产物清单
        • Ambari编译——环境准备
        • Ambari编译——RPM部分修改
        • Ambari编译——教程大纲
        • Ambari编译——环境准备
      • 适用于Centos7.9

    • Ambari-Metrics

    • Ambari-Infra

  • 前端开发

  • 后端开发

  • 官方组件编译

  • 扩展组件编译

  • 源码编译
  • Ambari 源码编译
  • Ambari
  • 适用于Rocky8.10
JaneTTR
2025-05-03
目录
环境准备与依赖梳理
背景说明
环境准备与依赖梳理
1. 常见全量编译命令
2. 编译前代码微调——Node.js镜像与脚本
3. Yarn包EOF报错的彻底解决
4. Python版本适配与虚拟环境隔离
5. Rocky 特有的 rpm 策略放宽与兼容方案
5.1 忽略 shebang 检查
5.2 agent/server 子模块构建报错应对
6. 编译结果校验与 rpm 产物清单

Ambari编译——教程大纲2.8.0

# 环境准备与依赖梳理

提示

本文汇总了 Ambari 2.8.0 在 Rocky Linux 8.10 源码编译的完整流程与典型故障排查方法,从零基础环境配置到 rpm 产物校验,涵盖 Node.js、Maven、Python 等多语言集成“卡点”,为大数据平台运维与二次开发落地提供实战参考。

# 背景说明

随着 CentOS 停服,Rocky Linux 8.10 成为企业大数据平台迁移和新部署的主流选择。但 Ambari 2.8.0 的编译链路高度依赖于操作系统包和多版本依赖(如 JDK、Maven、Node.js、Python),在新环境下,依赖适配、rpm 打包策略、前端构建流程等环节都会暴露一系列新老问题。 本大纲将重点梳理 Rocky 8.10 下实际遇到的环境差异与踩坑点,帮助你直观规避。

笔记

Rocky Linux 8.10 在部分工具链(如 Python 默认指向 python3、rpm-build 规则收紧、EPEL 源兼容性)与 CentOS 有细微区别,务必结合文档逐步排查和调整。

# 环境准备与依赖梳理

请务必完成环境准备章节的所有依赖包安装及环境变量配置,否则后续流程很难顺利通过。

# 1. 常见全量编译命令

正常情况下,直接执行如下 Maven 命令即可:

mvn -T 2C -B install package rpm:rpm \
  -Drat.skip=true \
  -Dcheckstyle.skip=true \
  -DskipTests \
  -Dpython.ver="python >= 2.6" \
  -Preplaceurl
1
2
3
4
5
6
  • -T 2C多线程加速建议按实际 CPU 数量调整,充分发挥硬件性能
  • 省略测试、跳过 style 检查,极大提高编译速度和稳定性

编译截图

# 2. 编译前代码微调——Node.js镜像与脚本

Ambari 前端构建阶段容易卡在 node-sass、fsevents 等依赖,这些依赖国内访问极易失败。 强烈建议在 ambari-admin/pom.xml 里 npm install 命令后面追加:

--registry=https://registry.npmmirror.com --ignore-scripts
1

实际修改建议(xml节点参考):


<arguments>install --registry=https://registry.npmmirror.com --ignore-scripts</arguments>
1
2

提示

--ignore-scripts 能跳过 postinstall 这类容易崩溃的 node 脚本,国内网络建议全局设 npm 镜像源提升构建成功率。

image-20250525101517840

# 3. Yarn包EOF报错的彻底解决

如遇 Yarn 解包时报 EOFException,99% 与包缓存损坏或镜像源质量有关。 解决方案请移步专文:

Yarn解压报错EOFException排查与解决

Yarn EOF 报错

# 4. Python版本适配与虚拟环境隔离

Rocky Linux 8.10 默认 python3,但 Ambari 部分组件对 python2 有硬性要求。 推荐不要直接软链全局 python,而是用虚拟环境一键切换和隔离。 详细教程见:使用虚拟环境

python版本不匹配

注意

python 环境混用最易导致脚本兼容性问题,生产/测试环境都推荐用 venv/miniconda 方式隔离运行时。

# 5. Rocky 特有的 rpm 策略放宽与兼容方案

Rpm兼容不行

# 5.1 忽略 shebang 检查

警告

如果不想看报错,直接想知道怎么改请戳我查看

Rocky 8.10 的 rpm 构建环节对 shebang 校验极为严格,部分脚本头部格式与新 rpm-build 规则冲突, 需在打包 spec 文件中适配 shebang 忽略参数。

戳我查看:忽略shebang的方法

# 5.2 agent/server 子模块构建报错应对

Ambari 的 agent/server 模块经常受 rpm 环境变量或脚本权限影响导致报错。典型报错及最佳实践见:最佳实践

# 6. 编译结果校验与 rpm 产物清单

上述都执行了基本就可以得到下面的结果了 编译成功

编译结束后,建议如下批量校验 rpm 产物:

find . -iname *.rpm | while read pkg; do rpm -qpi "$pkg"; done
1

编译后产物

实际产物如下:

路径 说明
./ambari-server-spi/target/rpm/ambari-server-spi/RPMS/noarch/ambari-server-spi-2.8.0.0-0.noarch.rpm server接口
./ambari-admin/target/rpm/ambari-admin/RPMS/noarch/ambari-admin-2.8.0.0-0.noarch.rpm admin模块
./ambari-funtest/target/rpm/ambari-funtest/RPMS/noarch/ambari-funtest-2.8.0.0-0.noarch.rpm 测试用例
./ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-2.8.0.0-0.x86_64.rpm agent服务
./ambari-web/target/rpm/ambari-web/RPMS/noarch/ambari-web-2.8.0.0-0.noarch.rpm 前端资源
./ambari-project/target/rpm/ambari-project/RPMS/noarch/ambari-project-2.8.0.0-0.noarch.rpm 通用项目
./target/rpm/ambari/RPMS/noarch/ambari-2.8.0.0-0.noarch.rpm 集成主包
./ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-2.8.0.0-0.x86_64.rpm server服务
./ambari-views/target/rpm/ambari-views/RPMS/noarch/ambari-views-2.8.0.0-0.noarch.rpm 视图库
#Ambari#源码编译#错误排查#Node.js
Ambari编译——环境准备
Ambari编译——环境准备

← Ambari编译——环境准备 Ambari编译——环境准备→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式