ambari-自动构建service 继承规则

一个服务可以从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.json
kerberos.json
metrics.json
role_command_order.json
service_advisor.py
widgets.json

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

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

quicklinks/quicklinks.json
themes/theme.json

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

packages
upgrades

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

  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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值