[ 
https://issues.apache.org/jira/browse/AMBARI-20433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15979177#comment-15979177
 ] 

Tim Thorpe commented on AMBARI-20433:
-------------------------------------

It is possible to drop some of the service dependencies from the metainfo.xml.  
Instead the stack advisor or service advisor would need to be changed to 
provide better recommendations and validations of the component layout and 
configuration based on which of the services (which it *could* depend on) are 
installed.

I'm not sure if the HDFS dependency on Zookeeper is the easiest example for 
this because enabling NameNode HA is triggered by a hard coded button on the 
Ambari UI.  It may fail gracefully if Zookeeper is not installed (or not 
installed on enough nodes).  I'll need to test that.

The biggest problem with this is the scale of the changes.  Ideally this would 
be an epic and we could proceed one service at a time.  There are changes at 
the common services level.  First to the metainfo.xml to remove the dependency. 
 Next to the python scripts which handle install, configure, start and stop for 
the service.  Currently those scripts are written to expect the services that 
are now declared as dependencies are actually installed.  Those scripts need to 
handle the case where those services aren't installed.

There would also be changes required at the stack advisor level (or service 
advisor level) for the recommendations and validations (mentioned above).

> Need the ability to have dynamic dependency between component/services
> ----------------------------------------------------------------------
>
>                 Key: AMBARI-20433
>                 URL: https://issues.apache.org/jira/browse/AMBARI-20433
>             Project: Ambari
>          Issue Type: Improvement
>          Components: ambari-server
>         Environment: all
>            Reporter: Tuong Truong
>            Assignee: Tim Thorpe
>
> Currently, service interdependency are statically defined in the stack 
> regardless its needed or not.  For instance, Spark has a static dependency on 
> Hive and will force Hive to be installed whenevern Spark is install, but Hive 
> is only needed if Spark Thrift Server component is installed.
> It would be nice if the stack has to ability to declare the dependency 
> conditionally and at component level and the dependency will only be in 
> effect when the component is chosen.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to