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

JaneTTR

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

  • Bigtop 方法论

  • 自定义集成

  • Ambari Server 与 Web

    • 方法论

    • 代码生命周期-metainfo

      • 加载原理深度剖析[一]
      • 加载原理深度剖析[二]
      • 加载原理深度剖析[三]
      • 结构与层级深入解读
      • configFile详解[一]
      • configFile详解[二]
      • cardinality详解[一]
      • cardinality详解[二]
      • cardinality详解[三]
        • 2.3 结合 Redis 场景说明
          • 典型 metainfo 配置示例
          • Ambari 校验链路回顾
          • 场景总结与实战价值
      • category详解[一]
      • category详解[二]
      • category详解[三]
      • theme详解[一]
      • theme详解[二]
      • theme详解[三]
      • commandScript详解[二]
      • commandScript详解[一]
      • commandScript详解[三]
      • customCommand详解[一]
      • customCommand详解[二]
      • customCommand详解[三]
      • requiredServices详解[一]
      • requiredServices详解[二]
      • osSpecifics详解[一]
      • osSpecifics详解[二]
      • osSpecifics详解[三]
      • quicklinks详解[一]
      • quicklinks详解[二]
      • quicklinks详解[三]
      • quicklinks详解[四]
      • versionAdvertised详解
    • 架构剖析

    • UI样式

  • Ambari Metrics

  • Ambari Plus 思考

  • Redis集成实战

  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Ambari Server 与 Web
  • 代码生命周期-metainfo
JaneTTR
2025-06-01
目录
2.3 结合 Redis 场景说明
典型 metainfo 配置示例
Ambari 校验链路回顾
场景总结与实战价值

cardinality详解[三]

# 2.3 结合 Redis 场景说明 场景实战

在大数据与中间件平台实际部署中,不同组件往往对分布式实例数量有严格要求。以 Redis 为例,我们可以通过 metainfo 配置 cardinality 的方式,精准约束主节点数量。

# 典型 metainfo 配置示例

下面是 Redis Master 组件的 metainfo.xml 片段:


<component>
    <name>REDIS_MASTER</name>
    <displayName>Redis Master</displayName>
    <category>MASTER</category>
    <cardinality>3+</cardinality> <!-- 至少需要 3 个主节点 -->
    <versionAdvertised>true</versionAdvertised>
    <commandScript>
        <script>scripts/redis_master.py</script>
        <scriptType>PYTHON</scriptType>
    </commandScript>
</component>
1
2
3
4
5
6
7
8
9
10
11
12

解读

cardinality 配置为 3+,即 Redis Master 必须至少部署 3 个实例,确保高可用和主从切换能力。此项校验可有效防止因节点数量不足导致的主节点单点故障。

# Ambari 校验链路回顾

  • 配置解析:在安装流程中,Ambari 首先通过 Java 层解析 metainfo.xml,识别出所有组件的 cardinality 约束。
  • 校验调度:Java 后端自动把实际节点分配信息和 metainfo 配置一起传递给 StackAdvisor 校验引擎。
  • 脚本执行:Python StackAdvisor 脚本依据 blueprint 和 cluster 绑定,对节点数量进行逐项检查,严格按照 cardinality 规则甄别部署方案。
校验阶段 说明
配置识别 解析 metainfo.xml,识别 <cardinality>3+</cardinality> 配置
部署参数传递 Blueprint/Host Groups 信息传递给 StackAdvisor 脚本
校验反馈 不足 3 个主节点时,接口直接返回 ERROR,终止部署流程

# 场景总结与实战价值

笔记

通过在 metainfo.xml 配置 <cardinality>,Ambari 能够将分布式高可用要求内置于平台自动化校验体系:

  • 有效防止节点分配不合理,减少人工巡检和误操作。
  • 部署阶段自动终止风险场景,避免隐患上线。
  • Java 负责全流程调度和异常捕捉,Python 脚本做落地校验,提升系统健壮性和运维效率。

Redis 只是典型代表,几乎所有强一致性组件(如 Zookeeper、HBase Master、YARN ResourceManager 等)都可以利用此机制,平台集成时建议始终结合 metainfo 配置自动化部署约束。

#Ambari#源码解析#metainfo#Redis
cardinality详解[二]
category详解[一]

← cardinality详解[二] category详解[一]→

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