...
In this example, we will add a configuration type "test-config" to our SAMPLESRV.
Modify the metainfo.xml
Add the configuration files to the CLIENT component will make it available in the client tar ball downloaded from Ambari.
Code Block <component> <name>SAMPLESRV_CLIENT</name> <displayName>Sample Srv Client</displayName> <category>CLIENT</category> <cardinality>1+</cardinality> <commandScript> <script>scripts/sample_client.py</script> <scriptType>PYTHON</scriptType> <timeout>600</timeout> </commandScript> <configFiles> <configFile> <type>xml</type> <fileName>test-config.xml</fileName> <dictionaryName>test-config</dictionaryName> </configFile> </configFiles> </component>
Create a directory for the configuration dictionary file
SAMPLESRV
/
configuration
.Code Block mkdir -p configuration cd configuration
Create the
test-config.xml
file. For example:Code Block <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>some.test.property</name> <value>this.is.the.default.value</value> <description>This is a test description.</description> </property> <property> <name>another.test.property</name> <value>5</value> <description>This is a second test description.</description> </property> </configuration>
There is an optional setting "configuration-dir". Custom services should either not include the setting or should leave it as the default value "configuration".
Code Block <configuration-dir>configuration</configuration-dir>
- Configuration dependencies can be included in the metainfo.xml in the a "
configuration-dependencies
" section. This section can be added to the service as a whole or a particular component. One of the implications of this dependency is that whenever the config-type is updated, Ambari automatically marks the component or service as requiring restart.
For example, HIVE defines a component level configuration dependencies for the HIVE_METASTORE componentCode Block <configuration-dependencies><component> <config-type>core-site</config-type> <name>HIVE_METASTORE</name> <config-type>hdfs-<displayName>Hive Metastore</displayName> <category>MASTER</category> <cardinality>1</cardinality> <versionAdvertised>true</versionAdvertised> <reassignAllowed>true</reassignAllowed> <clientsToUpdateConfigs></clientsToUpdateConfigs> ... ... <configuration-dependencies> <config-type>hive-site</config-type> </configuration-dependencies> </component>
HIVE also defines service level configuration dependencies.
Code Block <configuration-dependencies> <config-type>core-site</config-type> <config-type>hive-log4j</config-type> <config-type>hive-exec-log4j</config-type> <config-type>hive-env</config-type> <config-type>hivemetastore-site.xml</config-type> <config-type>webhcat-site</config-type> <config-type>webhcat-env</config-type> <config-type>parquet-logging</config-type> <config-type>ranger-hive-plugin-properties</config-type> <config-type>ranger-hive-audit</config-type> <config-type>ranger-hive-policymgr-ssl</config-type> <config-type>ranger-hive-security</config-type> <config-type>mapred-site</config-type> <config-type>application.properties</config-type> <config-type>druid-common</config-type> </configuration-dependencies>