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

JaneTTR

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

  • Bigtop 方法论

  • 自定义集成

  • Ambari Server 与 Web

    • 方法论

    • 代码生命周期-metainfo

      • 加载原理深度剖析[一]
      • 加载原理深度剖析[二]
      • 加载原理深度剖析[三]
      • 结构与层级深入解读
      • configFile详解[一]
      • configFile详解[二]
      • cardinality详解[一]
      • cardinality详解[二]
      • cardinality详解[三]
      • category详解[一]
      • category详解[二]
      • category详解[三]
      • theme详解[一]
      • theme详解[二]
      • theme详解[三]
      • commandScript详解[二]
      • commandScript详解[一]
      • commandScript详解[三]
      • customCommand详解[一]
      • customCommand详解[二]
      • customCommand详解[三]
      • requiredServices详解[一]
      • requiredServices详解[二]
      • osSpecifics详解[一]
      • osSpecifics详解[二]
      • osSpecifics详解[三]
      • quicklinks详解[一]
      • quicklinks详解[二]
      • quicklinks详解[三]
      • quicklinks详解[四]
      • versionAdvertised详解
        • 1. versionAdvertised 概述
          • 1.1 参数定义
          • 1.2 官方出处
        • 2. 参数配置与写法
          • 2.1 XML 书写方式
          • 2.2 参数选项与适用建议
          • 2.3 未配置或配置错误的实际现象
        • 3. 版本升级链路中的作用
          • 3.1 纳入升级/切换/回滚全链路
          • 3.2 运维建议
          • 3.3 常见故障与诊断
        • 4. 数据库影响与主机版本追踪
          • 4.1 hostcomponentstate.version 字段详解
          • 4.2 追踪/溯源/批量分析应用场景
          • 4.3 versionAdvertised=false 的直接后果
    • 架构剖析

    • UI样式

  • Ambari Metrics

  • Ambari Plus 思考

  • Redis集成实战

  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Ambari Server 与 Web
  • 代码生命周期-metainfo
JaneTTR
2025-07-08
目录
1. versionAdvertised 概述
1.1 参数定义
1.2 官方出处
2. 参数配置与写法
2.1 XML 书写方式
2.2 参数选项与适用建议
2.3 未配置或配置错误的实际现象
3. 版本升级链路中的作用
3.1 纳入升级/切换/回滚全链路
3.2 运维建议
3.3 常见故障与诊断
4. 数据库影响与主机版本追踪
4.1 hostcomponentstate.version 字段详解
4.2 追踪/溯源/批量分析应用场景
4.3 versionAdvertised=false 的直接后果

versionAdvertised详解

# 1. versionAdvertised 概述

# 1.1 参数定义

versionAdvertised 是 Ambari 组件 metainfo.xml 文件的重要参数,主要用于 控制该服务是否纳入平台的版本升级、切换、回滚等生命周期管理,并决定其在数据库 hostcomponentstate 表中是否写入具体版本号。

概念解读

versionAdvertised 并不影响 UI 是否强制显示版本号(UI 受多种配置综合影响), 它的核心作用在于升级链路和数据库追踪。

# 1.2 官方出处

官方参考

详见 Ambari官方 metainfo.xml 说明 (opens new window) does the component advertise its version – used during rolling/express upgrade

# 2. 参数配置与写法

# 2.1 XML 书写方式

该参数仅可出现在 service 的 <service> 节点下,支持 true 或 false 两种布尔值。


<service>
    <name>ZOOKEEPER_SERVER</name>
    <versionAdvertised>true</versionAdvertised>
    <!-- 其他配置 -->
</service>
1
2
3
4
5
6

Zookeeper metainfo 片段

配置示例解读

  • 如果你的服务期望参与升级管理、版本切换,务必写明 versionAdvertised=true
  • 若仅是 agent、监控脚本、小工具、扩展插件等无需平台升级,可省略或设为 false

# 2.2 参数选项与适用建议

参数名 类型 默认值 推荐取值 典型场景
versionAdvertised bool false true 主服务/需要升级的组件
versionAdvertised bool false false agent/小工具/静态插件
  • 设为 true:参与升级/切换/回滚,数据库有版本记录
  • 设为 false:完全跳过升级/切换/回滚,数据库无相关追踪

# 2.3 未配置或配置错误的实际现象

  • 不配置 versionAdvertised 或拼写错误,Ambari 可能会将该服务识别为 UNKNOWN,导致升级链路缺失、平台提示未知服务。
  • 在运维实际中,很多升级失败或者服务不可切换的根因,就是该参数遗漏或配置不当。

参数缺失或错误时的 UNKNOWN 现象

# 3. 版本升级链路中的作用

# 3.1 纳入升级/切换/回滚全链路

只有 versionAdvertised 为 true 的服务,才会被 Ambari 升级引擎纳入滚动升级、Express 升级、版本切换、回滚等流程。 无论是 UI 操作、API 调用还是 CLI 工具执行,这些链路都会自动筛选 versionAdvertised=true 的服务参与平台级版本流转。

升级链路场景 受 versionAdvertised 控制 说明
滚动升级 是 不在升级服务清单中的组件不会被升级流程感知
Express 升级 是 只处理 versionAdvertised=true 的服务
版本切换 是 否则无法对指定服务做多版本切换
回滚 是 否则升级失败无法单独对某服务做回退
普通配置变更 否 与升级无关,普通配置覆盖流程不依赖 versionAdvertised

# 3.2 运维建议

注意

在大数据生产集群环境中,组件服务能力臃肿,升级风险较高。如非必要,强烈不建议频繁对主服务做版本升级,更建议采用稳定运行、全量验证的维护策略。

# 3.3 常见故障与诊断

  • 升级未包含某服务:需首先检查 metainfo.xml 是否已设 versionAdvertised=true
  • 回滚找不到目标服务:大概率是该参数配置缺失或拼写错误
  • 批量切换无响应:请对所有需升级服务一一核查该参数

# 4. 数据库影响与主机版本追踪

# 4.1 hostcomponentstate.version 字段详解

设置 versionAdvertised=true 后,Ambari 数据库的 hostcomponentstate 表中,将为每台主机、每个服务组件实例写入当前版本号(version 字段)。

hostcomponentstate 版本影响

字段名 说明
host_name 目标主机名
service_name 服务名称
component_name 组件实例名
version 当前主机当前组件版本,升级时自动写入

# 4.2 追踪/溯源/批量分析应用场景

  • 批量查询版本分布:可精确追踪集群内每台主机、每个组件当前运行的版本,支持升级进度批量监控
  • 升级/回滚验证:平台升级/切换后能快速校验全集群的实际生效版本,避免“表面已升实际未切换”
  • 历史溯源/异常排查:升级异常、版本漂移、节点不一致等场景下可追溯 root cause

# 4.3 versionAdvertised=false 的直接后果

  • hostcomponentstate.version 字段始终为空,数据库层面无法分析/追踪/统计该服务实际版本
  • 升级/切换/回滚/批量操作均被平台自动跳过
  • 日常巡检、故障诊断、扩缩容自动化等所有基于数据库版本信息的能力将缺失
#Ambari#源码解析#metainfo
quicklinks详解[四]
server与agent协作详解[一]

← quicklinks详解[四] server与agent协作详解[一]→

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