编写 metainfo.xml
metainfo.xml 是声明式服务描述符。顶层 service 使用 name、displayName 和 version 标识服务,并描述 components、osSpecifics、commandScript、requiredServices、configuration-dependencies 以及可选的 configuration-dir。
组件
每个组件都有唯一的 name、显示名称、类别(MASTER、SLAVE 或 CLIENT)和 cardinality。组件可以公布版本、允许重新分配、声明依赖、定义自定义命令,并提供专用脚本和日志。
命令和配置
commandScript 指定服务或组件操作使用的 Python 脚本和超时时间。configuration-dependencies 列出服务或组件所需的配置类型;依赖发生变化时,Ambari 可以将受影响的组件标记为需要重启。configFiles 标识生成的 XML、环境或 properties 文件及其字典名称。
软件包和平台
osSpecifics 将操作系统系列映射到部署服务所需的软件包。软件包名称由平台软件包管理器使用。服务还可以声明所需服务和依赖条件,包括集群或主机范围的依赖及自动部署行为。
生命周期
脚本实现组件生命周期。标准操作包括安装、启动、停止、状态和配置;customCommands 添加服务专用操作。versionAdvertised 标志告知 Ambari 组件是否参与面向版本的升级处理。
示例
描述符应专注于服务元数据和可执行契约。监控后端专用的遥测配置应放在 telemetry.json 中,同时保留 metrics.json 作为 Ambari 控制平面的指标契约。具体写法可参考当前的 BIGTOP HDFS metainfo.xml。