Ambari之metainfo.xml详解

metainfo.xml定义了Ambari管理Service的一些配置内容,该文件对应Service定义起着至关重要的作用。

结构

一级结构
FieldUsageSample Values
nameservice的名称,该名称必须保障在stack services中是唯一的HDFS
displayName该service的显示名称HDFS
version该service的版本,版本和名称能够唯一的定义该service,通常该版本为该service软件的版本2.7.3
components该service下所依赖的components列表请参考HDFS metainfo.xml
osSpecifics该service针对OS的特定package信息,该命令会在component实例中执行请参考HDFS metainfo.xml
commandScriptcomponent组service级别的命令也是支持的请参考HDFS metainfo.xml
comment该service的简短注释Apache Hadoop Distributed File System
requiredServices所以来的其他services请参考HDFS metainfo.xml
configuration-dependencies该service所依赖的配置文件(被其他services拥有的config也要在该列表中指定)请参考HDFS metainfo.xml
restartRequiredAfterRackChange是否在rack变更后重启true/false
configuration-dir
service/components
FieldUsageSample Values
name组件的名称HDFS
displayName该组件的显示名称HDFS
category该组件的类型:MASTER/SLAVE/CLIENT
commandScript该命令将会执行当该组件实例化时请参考HDFS metainfo.xml
cardinality允许/期待实例化数量比如1-2 对于Master,1+对于Slave
reassignAllowed该组件是否支持重新分配(reAssigned)/移动(Moved)到另外一个hosttrue/false
versionAdertised(?)does the component advertise its version - used during rolling/express upgradetrue/false
timelineAppidAmbariMetrics搜集该组件时的名称请参考HDFS metainfo.xml
dependencies该组件所依赖其他组件列表请参考HDFS metainfo.xml
customCommands用户自定义命令RESTART_LLAP (Check out HIVE metainfo)
service/osSpecifics
FieldUsageSample Values
osFamily该package支持os集合any => all

redhat6,debian7,ubuntu12,ubuntu14,ubuntu16|
|packages |部署该service所依赖的packages列表|请参考HDFS metainfo.xml|
|package/name|package名称|hadoop-lzo等|

service/component/dependencies/dependency
FieldUsageSample Values
name依赖组件的名称HDFS/ZKFC
scope该scope是否存在同一个cluster/hostcluster/host
auto-deploy是否自动部署,当不存在时true/false
conditions判断该依赖是否存在的条件,比如在一个配置中一个属性是否存在请参考HDFS metainfo.xml
<dependency>
  <name>HDFS/ZKFC</name>
  <scope>cluster</scope>
  <auto-deploy>
    <enabled>false</enabled>
  </auto-deploy>
  <conditions>
    <condition xsi:type="propertyExists">
      <configType>hdfs-site</configType>
      <property>dfs.nameservices</property>
    </condition>
  </conditions>
</dependency>
service/component/commandScript
FieldUsageSample Values
script该script的相对路径请参考HDFS metainfo.xml
scriptType该script的类型,当前仅支持PYTHON请参考HDFS metainfo.xml
timeout该script的执行超时时间请参考HDFS metainfo.xml

示例:

<commandScript>
  <script>scripts/service_check.py</script>
  <scriptType>PYTHON</scriptType>
  <timeout>300</timeout>
</commandScript>
service/component/logs
FieldUsageSample Values
logId该组件的logId请参考HDFS metainfo.xml
primary是否为primary logid请参考HDFS metainfo.xml
<log>
  <logId>hdfs_namenode</logId>
  <primary>true</primary>
</log>
service/component/customCommand

参考service/component/commandScript

service/component/configFiles
FieldUsageSample Values
type该配置文件的类型:xml/env sh/yaml请参考HDFS metainfo.xml
fileName该生成文件的名称请参考HDFS metainfo.xml
dictionaryNameambari-server管理该配置文件的路径请参考HDFS metainfo.xml

metainfo.xml示例

<metainfo>
  <schemaVersion>2.0</schemaVersion>
  <services>
    <service>
      <name>HBASE</name>
      <displayName>HBase</displayName>
      <comment>Non-relational distributed database and centralized service for configuration management &amp;
 synchronization
      </comment>
      <version>0.96.0.2.0</version>
      <components>
        <component>
          <name>HBASE_MASTER</name>
          <displayName>HBase Master</displayName>
          <category>MASTER</category>
          <cardinality>1+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <timelineAppid>HBASE</timelineAppid>
          <dependencies>
            <dependency>
              <name>HDFS/HDFS_CLIENT</name>
              <scope>host</scope>
              <auto-deploy>
                <enabled>true</enabled>
              </auto-deploy>
            </dependency>
            <dependency>
              <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
              <scope>cluster</scope>
              <auto-deploy>
                <enabled>true</enabled>
                <co-locate>HBASE/HBASE_MASTER</co-locate>
              </auto-deploy>
            </dependency>
          </dependencies>
          <commandScript>
            <script>scripts/hbase_master.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
          <customCommands>
            <customCommand>
              <name>DECOMMISSION</name>
              <commandScript>
                <script>scripts/hbase_master.py</script>
                <scriptType>PYTHON</scriptType>
                <timeout>600</timeout>
              </commandScript>
            </customCommand>
          </customCommands>
        </component>

        <component>
          <name>HBASE_REGIONSERVER</name>
          <displayName>RegionServer</displayName>
          <category>SLAVE</category>
          <cardinality>1+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <timelineAppid>HBASE</timelineAppid>
          <commandScript>
            <script>scripts/hbase_regionserver.py</script>
            <scriptType>PYTHON</scriptType>
          </commandScript>
        </component>

        <component>
          <name>HBASE_CLIENT</name>
          <displayName>HBase Client</displayName>
          <category>CLIENT</category>
          <cardinality>1+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <commandScript>
            <script>scripts/hbase_client.py</script>
            <scriptType>PYTHON</scriptType>
          </commandScript>
          <configFiles>
            <configFile>
              <type>xml</type>
              <fileName>hbase-site.xml</fileName>
              <dictionaryName>hbase-site</dictionaryName>
            </configFile>
            <configFile>
              <type>env</type>
              <fileName>hbase-env.sh</fileName>
              <dictionaryName>hbase-env</dictionaryName>
            </configFile>
          </configFiles>
        </component>
      </components>

      <osSpecifics>
        <osSpecific>
          <osFamily>any</osFamily>
          <packages>
            <package>
              <name>hbase</name>
            </package>
          </packages>
        </osSpecific>
      </osSpecifics>

      <commandScript>
        <script>scripts/service_check.py</script>
        <scriptType>PYTHON</scriptType>
        <timeout>300</timeout>
      </commandScript>

      <requiredServices>
        <service>ZOOKEEPER</service>
        <service>HDFS</service>
      </requiredServices>

      <configuration-dependencies>
        <config-type>core-site</config-type>
        <config-type>hbase-site</config-type>
        <config-type>ranger-hbase-policymgr-ssl</config-type>
        <config-type>ranger-hbase-security</config-type>
      </configuration-dependencies>

    </service>
  </services>
</metainfo>

参考:
* 源文档: https://cwiki.apache.org/confluence/display/AMBARI/Writing+metainfo.xml

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值