[ https://issues.apache.org/jira/browse/YARN-914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14307545#comment-14307545 ]
Jason Lowe commented on YARN-914: --------------------------------- For transferring knowledge to the standby RM, we could persist the graceful decomm node list to the state store. I agree with Xuan that so far I don't see a need to treat LRS and normal containers separately. Either a container exits before the decommission timeout or it doesn't. Just to be clear, the NM is already tracking which applications are active on a node and is reporting these to the RM on heartbeats (see NM context and NodeStatusUpdaterImpl appTokenKeepAliveMap). The DecommissionService doesn't need to explicitly track the apps itself as this is already being done. As for doing this RM side or NM side, I think it can simplify things if we do this on the RM side. The RM already needs to know about graceful decommission to avoid scheduling new apps/containers on the node. Also the NM is heartbeating active apps back to the RM, so it's easy for the RM to track which apps are still active on a particular node. If the RMNodeImpl state machine sees that it's in the decommissioning state and all apps/containers have completed then it can transition to the decommissioned state. For timeouts the RM can simply set a timer-delivered event to the RMNode when the graceful decommission starts, and the RMNode can act accordingly when the timer event arrives, killing containers etc. Actually I'm not sure the NM needs to know about graceful decommission at all, which IMHO simplifies the design since only one daemon needs to participate and be knowledgeable of the feature. The NM would simply see the process as a reduction in container assignments until eventually containers are killed and the RM tells it that it's decommissioned. > Support graceful decommission of nodemanager > -------------------------------------------- > > Key: YARN-914 > URL: https://issues.apache.org/jira/browse/YARN-914 > Project: Hadoop YARN > Issue Type: Improvement > Affects Versions: 2.0.4-alpha > Reporter: Luke Lu > Assignee: Junping Du > Attachments: Gracefully Decommission of NodeManager (v1).pdf > > > When NMs are decommissioned for non-fault reasons (capacity change etc.), > it's desirable to minimize the impact to running applications. > Currently if a NM is decommissioned, all running containers on the NM need to > be rescheduled on other NMs. Further more, for finished map tasks, if their > map output are not fetched by the reducers of the job, these map tasks will > need to be rerun as well. > We propose to introduce a mechanism to optionally gracefully decommission a > node manager. -- This message was sent by Atlassian JIRA (v6.3.4#6332)