TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • Ambari

    • 编译小技巧

    • 使用Ambari-Env编译

    • 适用于Centos7.9

    • 适用于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编译——环境准备
    • 适用于Ubuntu22.04

  • Ambari-Metrics

  • Ambari-Infra

  • 组件编译-Ambari
  • Ambari
  • 适用于Rocky8.10
JaneTTR
2025-05-03
目录

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
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式