You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

metainfo.xml is a declarative definition of an Ambari managed service describing its content. It is the most critical file for any service definition. This section describes various key sub-sections within a metainfo.xml file.

Structure

Non-mandatory fields are described in italics.

The fields to describe a service are as follows:

  • name: the name of the service. A name has to be unique among all the services that are included in the stack definition containing the service.

  • displayName: the display name of the service
  • version: the version of the service. name and version together uniquely identify a service. Usually, the version is the version of the service binary itself.

  • components: the list of component that the service is comprised of

  • osSpecifics: OS specific package information for the service

  • commandScript: service level commands may also be defined. The command is executed on a component instance that is a client

  • comment: a short description describing the service

  • requiredServices: what other services that should be present on the cluster

  • configuration-dependencies: configuration files that are expected by the service (config files owned by other services are specified in this list)

service/components - A service contains several components. The fields associated with a component are:

  • name: name of the component

  • category: type of the component - MASTER, SLAVE, and CLIENT

  • commandScript: application wide commands may also be defined. The command is executed on a component instance that is a client

  • cardinality: allowed/expected number of instances
  • versionAdvertised: does the component advertise its version - used during rolling/express upgrade

  • timelineAppid: the default category used to store generated metrics data

  • dependencies: the list of components that this component depends on

  • customCommands: a set of custom commands associated with the component in addition to standard commands

service/osSpecifics - OS specific package names (rpm or deb packages)
  • osFamily: the os family for which the package is applicable

  • packages: list of packages that are needed to deploy the service

  • package/name: name of the package (will be used by the yum/zypper/apt commands)

 

service/commandScript - the script that implements service check (see service/component/customCommand below)
service/component/commandScript - the script that implements components specific default commands (see service/component/customCommand below)

service/component/customCommand - custom commands can be added to components.
  • name: name of the custom command
  • commandScript: the details of the script that implements the custom command
  • commandScript/script: the relative path to the script
  • commandScript/scriptType: the type of the script, currently only supported type is PYTHON
  • commandScript/timeout: custom timeout for the command - this supersedes ambari default 

service/component/configFiles - list of config files to be available when client config is to be downloaded (used to configure service clients that are not managed by Ambari)

  • type: the type of file to be generated, xml or env sh, yaml, etc
  • fileName: name of the generated file
  • dictionary: data dictionary that contains the config properties (relevant to how ambari manages config bags internally)

Sample 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>
  • No labels