Tim Thorpe created AMBARI-23591:
-----------------------------------
Summary: Improve inter-service/component dependencies
Key: AMBARI-23591
URL: https://issues.apache.org/jira/browse/AMBARI-23591
Project: Ambari
Issue Type: Epic
Components: ambari-server
Affects Versions: 3.0.0
Reporter: Tim Thorpe
In order to better support service dependencies and third party or custom
services, Ambari should be more flexible in how dependencies can be defined
(some examples are listed below). We also need to make sure these dependencies
are enforced in the same manner when installing the service and adding a
component to a node. Currently, when adding a service, the component
dependencies are only applied if the service is actually installed.
For example, the following dependency would only be applied if HDFS was
installed:
<dependencies>
<dependency>
<name>HDFS/HDFS_CLIENT</name>
<scope>host</scope>
<auto-deploy>
<enabled>true</enabled>
</auto-deploy>
</dependency>
When adding a component to a different node, after the service has been
installed, the dependencies within the metainfo.xml are then enforced. This
means that even if you don't have HDFS listed as a require service, the HDFS
Client dependency will still be enforced even if HDFS is not installed in the
cluster.
The behavior should be consistent. Add service and add component should both
follow the same behavior in the Ambari UI.
*Dependency Examples*
Certain service dependencies are optional. Ex. Spark has a dependency on the
Hive service but Hive is only needed if Spark Thrift Server component is
installed.
<requiredServices>
<service>HDFS</service>
<service>YARN</service>
*<service>HIVE</service>*
</requiredServices>
Some services may be required but only if a certain setting is enabled. Ex.
HDFS requires Zookeeper but only if NameNode HA is enabled.
Some components may require a dependency between a choice of components. Ex.
IBM DB2 Big SQL worker node requires either an HDSF DataNode or an HDFS Client.
Some components may require a dependency on a service client only if that
service is installed. Ex. if Atlas is installed, then IBM DB2 Big SQL head
node requires the Atlas client.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)