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

JaneTTR

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

  • Ambari 编译

  • Bigtop 编译

  • Ambari 源码编译

  • 前端开发

  • 后端开发

  • 官方组件编译

    • 准备阶段

    • 理解packages.gradle

      • Bigtop 构建过程中 RPM 打包路径解析
      • Bigtop 如何统一管理各组件版本
        • 1. 版本统一注入机制
        • 2. 编译体系中的引用场景
        • 3. 实际生成内容截图参考
      • Bigtop 如何插入补丁
      • Bigtop 应用补丁
      • Bigtop 多版本编译源码改造(一)
      • Bigtop 多版本编译源码改造(二)
    • 理解bigtop.bom

    • Hadoop编译

    • Flink编译

    • Spark编译

    • Livy编译

    • Zeppelin编译

    • Zookeeper编译

    • Hbase编译

    • Hive编译

    • Kafka编译

    • Solr编译

    • Tez编译

  • 扩展组件编译

  • 源码编译
  • 官方组件编译
  • 理解packages.gradle
JaneTTR
2022-12-18
目录
1. 版本统一注入机制
2. 编译体系中的引用场景
3. 实际生成内容截图参考

Bigtop 如何统一管理各组件版本

在 Bigtop 的编译体系中,不同组件(如 Hadoop、Hive、Spark、Kafka 等)虽然有各自的打包脚本与依赖逻辑,但所有版本号的来源都被统一收敛在一个关键文件中:

build/<component>/rpm/SOURCES/bigtop.bom
1

这个文件是由构建系统自动生成,在编译正式执行前就写入到构建目录中,其目的是:为整个打包系统提供一套 组件版本的集中注入变量表。

# 1. 版本统一注入机制

我们来看 Bigtop 是如何实现这个机制的,核心代码如下:

// 写入 bigtop.bom 文件,包含所有组件版本信息
def bomWriter = new File("$PKG_BUILD_DIR/rpm/SOURCES/bigtop.bom").newWriter()
bomVersions.each { bomWriter << "$it\n" } // 每一行为 KEY=VALUE 格式
bomWriter.close()
1
2
3
4

这段逻辑在构建任务启动前被执行,用于将 bomVersions 列表中的每一个版本信息输出到文本文件,最终内容形如:

HADOOP_VERSION=3.3.4
HIVE_VERSION=3.1.3
SPARK_VERSION=3.2.3
KAFKA_VERSION=2.8.1
...
1
2
3
4
5

这些变量会作为 编译前注入 提供给构建过程中的各类脚本或 rpm 构建命令使用。

# 2. 编译体系中的引用场景

bigtop.bom 被生成后,可被多种构建脚本和配置方式读取引用:

场景 说明
%define in .spec 文件 .spec 文件中可通过 %define HADOOP_VERSION %{expand:%%{HADOOP_VERSION}} 绑定变量
%setup / %build 阶段 RPM 构建脚本中直接引用变量值
构建 shell 脚本(如 install.sh) 通过 source bigtop.bom 加载所有版本号为环境变量
Ambari 等部署工具 可读取该文件用于版本展示、部署判断、UI 回显等

提示

相比传统方式将版本硬编码在多个地方,Bigtop 通过 bigtop.bom 做到了集中统一维护 + 多端引用注入,极大提升了可维护性。

# 3. 实际生成内容截图参考

如下图所示,这是某次构建 Ranger 时自动生成的 bigtop.bom 文件内容:

版本变量清单

你可以看到所有版本号都以 KEY=VALUE 的形式列出,是构建过程中的 核心依赖输入。

#Bigtop#源码编译#版本适配
Bigtop 构建过程中 RPM 打包路径解析
Bigtop 如何插入补丁

← Bigtop 构建过程中 RPM 打包路径解析 Bigtop 如何插入补丁→

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