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

Zhijie Shen commented on YARN-1954:
-----------------------------------

Let me give an example:

On main non-daemon thread:
1. amRMClientAsync.registerApplicationMaster
2. while (tasks are not completed) sleep a while
3. amRMClientAsync.unregisterApplicationMaster

On daemon thread (such as AMRMClientAsync's callback thread):
1. mark tasks are completed in onShutdownRequest

In this case, I think we'd better not to ask users to write the loop (step 2 on 
main thread). We provide the waitForCompletion method which take the user 
defined checker (e.g. Supplier<Boolean>).

> Add waitFor to AMRMClient(Async)
> --------------------------------
>
>                 Key: YARN-1954
>                 URL: https://issues.apache.org/jira/browse/YARN-1954
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: client
>    Affects Versions: 3.0.0, 2.4.0
>            Reporter: Zhijie Shen
>            Assignee: Tsuyoshi OZAWA
>
> Recently, I saw some use cases of AMRMClient(Async). The painful thing is 
> that the main non-daemon thread has to sit in a dummy loop to prevent AM 
> process exiting before all the tasks are done, while unregistration is 
> triggered on a separate another daemon thread by callback methods (in 
> particular when using AMRMClientAsync). IMHO, it should be beneficial to add 
> a waitFor method to AMRMClient(Async) to block the AM until unregistration or 
> user supplied check point, such that users don't need to write the loop 
> themselves.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to