一、本节主要解释说明一下 metainfo.xml 中常用的一些属性信息:
metainfo 公共部分,一般不变:
<?xml version="1.0"?>
<metainfo>
<schemaVersion>2.0</schemaVersion>
<services>
<service>
...(自定义服务相关信息)
</service>
</services>
</metainfo>
我们需要在 <service> </service>
内来描述自定义服务相关信息。
b站搜:create17
1、描述服务 <service> 的属性介绍
属性 | 描述 |
---|
name | 服务名,必须唯一,建议大写 |
displayName | 服务在 web UI 上的显示名 |
comment | f服务的描述信息 |
version | 服务版本,用 name 和 version 唯一标记一个服务 |
components | 服务中包含的组件 |
commandScript(可选) | 自定义命令 python 脚本入口,如果一个 Service 的 metainfo.xml 有该字段,那么在 Service 的 Action 列表中就会出现 自定义 命令。 |
requiredServices:(可选) | 集群上强制依赖的其他服务。换句话说,安装当前服务之前,必须安装 requiredServices 内指定的服务。 |
configuration-dependencies(可选) | 服务依赖的 xml 文件,当在前端页面上修改 xml 文件内容后并保存配置,服务会提示重启,服务下的所有组件都将被重启。 |
quickLinksConfigurations(可选) | 自定义快速链接,通常在这里设置 服务 web UI 链接。 |
osSpecifics(可选) | 服务会根据操作系统的差异来选择不同的 rpm 包 |
themes(可选) | 指定主题配置,通常和 json 文件相关联。 |
2、service/components:一个服务包含几个组件。
<component> 的字段如下表所示:
属性 | 说明 |
---|
name | 组件名 |
displayName | 组件的显示名 |
category | 指定了该组件(Component)的类别,可以是 MASTER、SLAVE、CLIENT。 |
commandScript | 标准命令,调用python脚本,用来执行该组件的某些操作 |
cardinality | 指的是所要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。 |
versionAdvertised(可选) | 是否宣称版本,用于回滚和升级 |
timelineAppid(可选) | 存储 metric 数据的默认类型 |
configuration-dependencies(可选) | 组件依赖的 xml 文件,当在前端页面上修改 xml 文件内容后并保存配置,服务会提示重启,只有该组件将被重启。 |
customCommands(可选) | 标准命令之外自定义的命令 |
configFiles(可选) | 客户端配置可以下载的配置文件 |
3、service/component/customCommand:添加到组件的自定义命令
属性 | 描述 |
---|
name | 自定义命令名称 |
commandScript | 实现自定义命令的脚本 |
commandScript/script | 脚本路径 |
commandScript/scriptType(可选) | 脚本类型,目前只支持python |
commandScript/timeout(可选) | 自定义命令超时时间 |
4、service/component/configFiles:客户端配置可以下载的配置文件
属性 | 描述 |
---|
type | 下载文件类型, xml or env sh, yaml 等 |
fileName | 下载的文件文件名 |
dictionary | 包含配置属性的数据字典 |
5、service/osSpecifics:操作系统特定包名 rpm 包
属性 | 描述 |
---|
osSpecific/osFamily | rpm 包适用的操作系统 |
osSpecific/packages/package/name | 部署服务需要的包名,将执行 yum install xxx 命令 |
6、service/quickLinksConfigurations
属性 | 描述 |
---|
service/quickLinksConfigurations-dir | 可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 quicklinks 目录,则可以跳过它。 |
service/quickLinksConfigurations/quickLinksConfiguration/fileName | json 文件,指定的 quickLink 文件名称 |
service/quickLinksConfigurations/quickLinksConfiguration/default | 一般为 true |
7、service/configuration-dependencies
属性 | 描述 |
---|
service/configuration-dir | 可选字段。用于告诉 Ambari Server 在哪里加载 xxx.xml 文件。如果我们希望服务使用默认的 configuration 目录,则可以跳过它。 |
service/configuration-dependencies/config-type | 服务依赖的配置文件名称。如果在前端页面上修改了该 xml 文件内容后并保存配置,服务会提示重启,整个服务都将被重启。 |
8、service/themes
属性 | 描述 |
---|
service/themes-dir | 可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。 |
service/themes/theme/fileName | json 文件,指定的主题文件名称 |
service/themes/theme/default | 一般为 true |
9、设置服务在初次部署集群时强制安装
在 metainfo.xml 里面添加 <selection>MANDATORY</selection>,MANDATORY 为强制安装的意思。如下图所示:
二、参考资料
【1】https://cwiki.apache.org/confluence/display/AMBARI/Writing+metainfo.xml