Tim Thorpe reassigned AMBARI-23591:

    Assignee: Jayush Luniya  (was: Tim Thorpe)

> 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
>            Assignee: Jayush Luniya
>            Priority: Major
> 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

Reply via email to