ambari-自动构建service 继承规则

来源:互联网 发布:香烟能在淘宝销售吗 编辑:程序博客网 时间:2024/06/07 17:18

一个服务可以从stack继承,也可以直接从common-services里面继承。
这在metainfo.xml中声明。

<metainfo>  <schemaVersion>2.0</schemaVersion>  <services>    <service>      <name>HDFS</name>      <extends>common-services/HDFS/2.1.0.2.0</extends>

当一个服务从另外一个版本的服务继承时,文件和目录的定义遵从几种不同的规则。

1.下面的文件如果在当前的服务中定义了,将取代父服务中的定义:

alerts.jsonkerberos.jsonmetrics.jsonrole_command_order.jsonservice_advisor.pywidgets.json

注意:所有的role_command_order.json会合并到stack的role command order。

2.下面的文件如果当前服务定义了,会合并父服务定义的文件。

quicklinks/quicklinks.jsonthemes/theme.json

3.下面的目录如果当前服务定义了会取代父服务的定义。

packagesupgrades

这意味着父服务这些目录中的文件不会继承,如果希望使用它们需要将他们拷贝到当前服务。

  1. 当前服务中configurations目录会合并父服务的配置文件。
    如果希望服务的配置不进行继承,可以在excluded-config-types中进行指定。
      <excluded-config-types>        <config-type>storm-site</config-type>      </excluded-config-types>

作为单个配置文件,比如core-site.xml,它默认会与父服务的配置合并。
如果supports_do_not_extend属性指定为true,配置将不会进行合并。

<configuration supports_do_not_extend="true">

服务元数据的继承

默认来说,当前服务metainfo.xml中定义的服务和组件的所有属性都会取代父服务的定义。
除非进行下列指定(此处有疑问。。。,如何指定的??):

<metainfo>  <schemaVersion>2.0</schemaVersion>  <services>    <service>      <name>HDFS</name>      <displayName>HDFS</displayName>      <comment>Apache Hadoop Distributed File System</comment>      <version>2.1.0.2.0</version>      <components>        <component>          <name>NAMENODE</name>          <displayName>NameNode</displayName>          <category>MASTER</category>          <cardinality>1-2</cardinality>          <versionAdvertised>true</versionAdvertised>          <reassignAllowed>true</reassignAllowed>          <commandScript>            <script>scripts/namenode.py</script>            <scriptType>PYTHON</scriptType>            <timeout>1800</timeout>          </commandScript>          ...

当前服务metainfo.xml中定义的定制命令会与父服务合并。

          <customCommands>            <customCommand>              <name>DECOMMISSION</name>              <commandScript>                <script>scripts/namenode.py</script>                <scriptType>PYTHON</scriptType>                <timeout>600</timeout>              </commandScript>            </customCommand>

当前服务metainfo.xml中定义的配置依赖会与父服务合并。

      <configuration-dependencies>        <config-type>core-site</config-type>        <config-type>hdfs-site</config-type>        ...      </configuration-dependencies>

当前服务metainfo.xml中定义的组件会与父服务合并(支持删除)。

    <component>          <name>ZKFC</name>          <displayName>ZKFailoverController</displayName>          <category>SLAVE</category>
原创粉丝点击