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

Steve Loughran commented on YARN-1564:
--------------------------------------

Services are all in 
[[https://github.com/hortonworks/hoya/tree/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service]]

* 
[[Parent|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service/Parent.java]]:
 interface that makes {{addService}} public and adds an option to list 
services. This could be retrofitted to {{CompositeService}}
* 
[[CompoundService|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service/CompoundService.java]
 : subclass of {{CompositeService}} that finishes when all of its children have 
*successfully* completed, or when any of its children fail.
* 
[[SequenceService|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service/SequenceService.java]]
  subclass of {{CompositeService}} that executes its children in sequence, 
starting one when the previous one successfully finishes. Again, failures are 
propagated up immediately.
* 
[[EventNotifyingService|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service/EventNotifyingService.java]]
 service which triggers a callback to a supplied interface implementation when 
started -or after a specified delay from the start time.
** 
[[ForkedProcessService.java|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/yarn/service/ForkedProcessService.java]]:
 more complex, this forks a potentially long lived application (via 
[[RunLongLivedApp|https://github.com/hortonworks/hoya/blob/develop/hoya-core/src/main/java/org/apache/hadoop/hoya/exec/RunLongLivedApp.java]]),
 completing the service when that process finishes.

The set allows you build up sequences of operations, as well as actions to run 
in parallel, and to notify a parent service or other object when they complete 
or fail.

There's tests for the simple ones (Sequence, compound, events) in groovy; 
nothing yet for forked processes.


> add some basic workflow YARN services
> -------------------------------------
>
>                 Key: YARN-1564
>                 URL: https://issues.apache.org/jira/browse/YARN-1564
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: api
>    Affects Versions: 2.2.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>            Priority: Minor
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> I've been using some alternative composite services to help build workflows 
> of process execution in a YARN AM.
> They and their tests could be moved in YARN for the use by others -this would 
> make it easier to build aggregate services in an AM



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to