Skip to main content
Version: 3.1.0 (Preview)

Custom Services

A custom service is a service definition that adds components and lifecycle behavior to a stack. Place the service under the stack services directory, or provide a common definition that a stack service references. Current BIGTOP examples are under ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services.

Lifecycle and Packages​

The service metainfo.xml names components, categories, cardinality, scripts, dependencies, packages, and configuration files. Python scripts implement install, configure, start, stop, and status; custom commands add service-specific operations. Package scripts and templates are kept with the service and run through Ambari's Python 3 runtime.

Configuration and Actions​

Use configuration-dependencies to declare the configuration types required by a service or component. Use quicklinks/quicklinks.json for service links and themes for supported service presentation metadata. A service advisor can validate placement and recommend configuration. telemetry.json describes telemetry-provider inputs; metrics.json remains the Ambari control-plane service metrics contract.

Inheritance​

Use the existing stack/service inheritance model and verify the resulting descriptor. Do not assume that a copied service definition inherits files unless its parent relationship is explicitly supported by the stack loader. Validate the assembled service, package paths, commands, and configuration dependencies before deployment.

Verification​

Test the complete lifecycle, service checks, configuration rendering, custom actions, and upgrade behavior on the target stack. The BIGTOP HDFS definition is a concrete current reference.