[ 
https://issues.apache.org/jira/browse/AMBARI-23591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tim Thorpe updated AMBARI-23591:
--------------------------------
    Description: 
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 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.

Some components may require either a slave component or a service client.  This 
situation applies to components that can be installed either on slave nodes or 
edge nodes.  Ex. with the IBM DB2 Big SQL service for a worker node, it can be 
installed either on a slave node with a DataNode or on an edge node with the 
HDFS client.

  was:
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 HDFS 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.

Some components may require either a slave component or a service client.  This 
situation applies to components that can be installed either on slave nodes or 
edge nodes.  Ex. with the IBM DB2 Big SQL service for a worker node, it can be 
installed either on a slave node with a DataNode or on an edge node with the 
HDFS client.


> 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 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.
> Some components may require either a slave component or a service client.  
> This situation applies to components that can be installed either on slave 
> nodes or edge nodes.  Ex. with the IBM DB2 Big SQL service for a worker node, 
> it can be installed either on a slave node with a DataNode or on an edge node 
> with the HDFS client.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to