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

Jian He commented on YARN-5621:
-------------------------------

I still have hesitation on this approach to spawn an additional process to only 
create symlinks, as it is heavier than directly invoking container-executor and 
implementation is more complicated.

I checked the code, it seems not that simple to make the whole flow work.  
Concretely , 
- When container creates the symlink, containerImpl needs to send a new LINK 
event to ResourceLocalizationService which will create a new LocalizerRunner 
thread- a number of refactors need to be made here so that all parameters are 
made available to the LocalizerRunner.   
- Then LocalizerRunner#findNextResource internally the logic need to be forked 
to send over symlinks instead of resources. 
- LocalizerHeatBeatRequest: One LINK object with symlink payloads need to be 
added in the heartBeat request, 
- LocalizerHeatBeatResponse: Two more objects LINK_FAILED and LINK_SUCCEED need 
to be added, and also the resource the link corresponds to.
- Once done, ResourceLocalizationService need to send LINK_FAILED and 
LINK_SUCCEED events back to ContainerImpl
- ContainerImpl state-machine gets complicated mainly because the symlink 
operation becomes asynchronous.
 -- first it needs to keep track of all original LINK requests so that when 
ResourceLocalizationService sends the results back, it knows which resource 
this request was originally correspond to.  User needs to query the status.
 -- new state-transitions also need to be added to handle the new LINK_FAILED 
and LINK_SUCCEEDED events.
I also would like to know what changes I need to make if we choose the 
container-executor approach. 
[~vvasudev], what's your opinion ?



> Support LinuxContainerExecutor to create symlinks for continuously localized 
> resources
> --------------------------------------------------------------------------------------
>
>                 Key: YARN-5621
>                 URL: https://issues.apache.org/jira/browse/YARN-5621
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Jian He
>            Assignee: Jian He
>         Attachments: YARN-5621.1.patch, YARN-5621.2.patch, YARN-5621.3.patch, 
> YARN-5621.4.patch, YARN-5621.5.patch
>
>
> When new resources are localized, new symlink needs to be created for the 
> localized resource. This is the change for the LinuxContainerExecutor to 
> create the symlinks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to