[ https://issues.apache.org/jira/browse/YARN-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhijie Shen updated YARN-422: ----------------------------- Attachment: AMNMClient_Defination.txt I've drafted a footprint of AMNMClient library, without documentation, tests and etc. While I'm going on towards a complete patch, please have a look at the client's definition, and share you ideas. I define AMNMClient by referring AMRMClient. In general, there're the following parts in the library. 1. AMNMClient defines three basic APIs 2. NMCommunicator is a wrapper of the communications of only one container, defined in ContainerManager. It is also the inner class of AMNMClientImpl. 2. AMNMClientImpl implements the APIs. It maintain one-to-many relationship with all the containers that are to be started. It contains a collection of NMCommunicator. 3. AMNMClienAsync is the ultimate class that AM wants to use. It implements the three APIs in the non-blocking way. Internally, there's an event dispatcher, which starts when AMNMClienAsync starts. Calling the three APIs are just scheduling an event on the dispatcher. The dispatcher will deliver the event to an idle thread in the thread pool, where AMNMClientImpl is called do the real work. This part refers the design of ContainerLaucherImpl. In addition, as the execution is asynchronous, an Callback interface is exposed to AM. > Add AM-NM client library > ------------------------ > > Key: YARN-422 > URL: https://issues.apache.org/jira/browse/YARN-422 > Project: Hadoop YARN > Issue Type: Sub-task > Reporter: Bikas Saha > Assignee: Zhijie Shen > Attachments: AMNMClient_Defination.txt, proposal_v1.pdf > > > Create a simple wrapper over the AM-NM container protocol to provide hide the > details of the protocol implementation. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira