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

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 深度专题

  • Bigtop 方法论

  • 自定义集成

  • Ambari Server 与 Web

  • Ambari Metrics

  • Ambari Plus 思考

  • Redis集成实战

    • 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 工作机制
  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Redis集成实战
  • Ambari部分
JaneTTR
2025-06-24
目录
1. 操作步骤:如何打通 Ambari 与 Bigtop
1.1 首先,修改 stack_packages.json
1.2 其次,distro-select 里做对应适配
1.3 核心原则:包名与角色严格一致,遵循统一规范
2. 为什么要保持一致?
3. 图示解读配置流转
3.1 Ambari 配置与包名对齐
3.2 distro-select 工作机制

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#Stack集成#集成案例#Bigtop#自动化部署#版本适配
Step17-Scripts-组件优先级
bigtop.bom

← Step17-Scripts-组件优先级 bigtop.bom→

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