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)
  • 方法论

  • 代码生命周期-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样式

  • GOD-Ambari
  • 代码生命周期-metainfo
JaneTTR
2025-07-08
目录

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.xml#versionAdvertised#组件升级#版本追踪
quicklinks详解[四]
server与agent协作详解[一]

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

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式