TT Bigdata TT Bigdata
首页
  • 部署专题

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

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

    • 更新说明
  • Ambari-Env

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

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

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

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

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

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

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

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

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

    • 更新说明
  • Ambari-Env

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

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

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

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

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

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)
  • Bigtop通用部分

  • Bigtop打包部分

  • Ambari部分

    • Step10-Stacks-包结构
    • Step11-Stacks-组件编排
    • Step12-Stacks-配置文件
    • Step13-Stacks-模板文件
    • Step14-Scripts-环境变量
    • Step15-Scripts-执行逻辑
    • Step16-Scripts-服务检查
    • Step17-Scripts-组件优先级
    • Step18-衔接-打通Ambari与Bigtop
      • 1. 操作步骤:如何打通 Ambari 与 Bigtop
        • 1.1 首先,修改 stack_packages.json
        • 1.2 其次,distro-select 里做对应适配
        • 1.3 核心原则:包名与角色严格一致,遵循统一规范
      • 2. 为什么要保持一致?
      • 3. 图示解读配置流转
        • 3.1 Ambari 配置与包名对齐
        • 3.2 distro-select 工作机制
  • J-Redis集成-F
  • Ambari部分
JaneTTR
2025-06-24
目录

Step18-衔接-打通Ambari与Bigtop

# 1. 操作步骤:如何打通 Ambari 与 Bigtop

# 1.1 首先,修改 stack_packages.json

路径示例:

ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/stack_packages.json
1

在这个文件中新增 Redis 相关的包名映射,以适配 Bigtop 输出的包和角色。例如:

{
  "BIGTOP": {
    "stack-select": {
      "REDIS": {
        "REDIS_MASTER": {
          "STACK-SELECT-PACKAGE": "redis-master",
          "INSTALL": [
            "redis-master",
            "redis-client"
          ],
          "PATCH": [
            "redis-master"
          ],
          "STANDARD": [
            "redis-master",
            "redis-client"
          ]
        },
        "REDIS_SLAVE": {
          "STACK-SELECT-PACKAGE": "redis-slave",
          "INSTALL": [
            "redis-slave",
            "redis-client"
          ],
          "PATCH": [
            "redis-slave"
          ],
          "STANDARD": [
            "redis-slave",
            "redis-client"
          ]
        },
        "REDIS_CLIENT": {
          "STACK-SELECT-PACKAGE": "redis-client",
          "INSTALL": [
            "redis-client"
          ],
          "PATCH": [
            "redis-client"
          ],
          "STANDARD": [
            "redis-client"
          ]
        }
      }
    },
    "conf-select": {
      "redis": [
        {
          "conf_dir": "/etc/redis/client/conf",
          "current_dir": "{0}/current/redis-client/conf",
          "component": "redis-client"
        }
      ]
    },
    "conf-select-patching": {
      "REDIS": {
        "packages": [
          "redis-client",
          "redis-master",
          "redis-slave"
        ]
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  • 这里,每个角色的包名必须与 Bigtop 编译出来的 RPM/DEB 包完全一致。
  • redis-master、redis-slave、redis-client 都是 bigtop-package 产物,不要自创别名,否则无法正确下发。

# 1.2 其次,distro-select 里做对应适配

distro-select 机制会根据 stack_packages.json 里的包名,去系统实际查找并切换软链。例如:

leaves = {
    'redis-master': 'redis',
    'redis-slave': 'redis',
    'redis-client': 'redis'
}
1
2
3
4
5
  • 这里也必须写和上一步完全一致的包名。否则 stack-select/distro-select 执行软链切换时会找不到包,导致服务启动失败或升级异常。

# 1.3 核心原则:包名与角色严格一致,遵循统一规范

  • 不管是 stack_packages.json、distro-select 代码、还是 stack-select 的 JSON 配置,都要完全一致。
  • 所有包名、组件名一旦对齐,Ambari 就能通过 stack-select/distro-select 机制自动发现和切换相应角色包,无需人工干预。

# 2. 为什么要保持一致?

  • 遵循 Bigtop 标准输出:Bigtop 输出什么包名(如 redis-master),就必须全链路贯穿。Ambari 自动化脚本、UI 下发、stack-select 切换都直接调用。
  • 批量切换、补丁升级保障:一致的包名保证多节点分发、补丁热切换、灰度升级都能批量安全完成。
  • 简化自动化脚本和工具链:全链路一致性大大降低开发和运维难度,不用在多套配置里做名词转换。

# 3. 图示解读配置流转

# 3.1 Ambari 配置与包名对齐

Ambari stack_packages.json 与 Bigtop 包名一一对应

  • 图中可见,所有角色(Master/Slave/Client)都绑定了唯一的包名映射,贯穿打包、部署、运维链路。

# 3.2 distro-select 工作机制

distro-select 查找和切换包软链

  • Ambari、Bigtop、distro-select 统一包名映射后,实现了软链自动切换、版本平滑升级、按需组件切换。
#Redis#bigtop#编译日志#自动化构建#版本注入
Step17-Scripts-组件优先级

← Step17-Scripts-组件优先级

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式