public static UnRegisterNodeManagerRequest newInstance(NodeId nodeId) { UnRegisterNodeManagerRequest nodeHeartbeatRequest = Records .newRecord(UnRegisterNodeManagerRequest.class); nodeHeartbeatRequest.setNodeId(nodeId); return nodeHeartbeatRequest; }
@SuppressWarnings("unchecked") @Override public UnRegisterNodeManagerResponse unRegisterNodeManager( UnRegisterNodeManagerRequest request) throws YarnException, IOException { UnRegisterNodeManagerResponse response = recordFactory .newRecordInstance(UnRegisterNodeManagerResponse.class); NodeId nodeId = request.getNodeId(); RMNode rmNode = this.rmContext.getRMNodes().get(nodeId); if (rmNode == null) { LOG.info("Node not found, ignoring the unregister from node id : " + nodeId); return response; } LOG.info("Node with node id : " + nodeId + " has shutdown, hence unregistering the node."); this.nmLivelinessMonitor.unregister(nodeId); this.rmContext.getDispatcher().getEventHandler() .handle(new RMNodeEvent(nodeId, RMNodeEventType.SHUTDOWN)); return response; }
/** * Test the method unRegisterNodeManager. Method should return a not null * result. * */ @Test public void testUnRegisterNodeManager() throws Exception { UnRegisterNodeManagerRequest request = UnRegisterNodeManagerRequest .newInstance(NodeId.newInstance("host1", 1234)); assertNotNull(client.unRegisterNodeManager(request)); ResourceTrackerTestImpl.exception = true; try { client.unRegisterNodeManager(request); fail("there should be YarnException"); } catch (YarnException e) { assertTrue(e.getMessage().startsWith("testMessage")); } finally { ResourceTrackerTestImpl.exception = false; } }
private void unRegisterNM() { RecordFactory recordFactory = RecordFactoryPBImpl.get(); UnRegisterNodeManagerRequest request = recordFactory .newRecordInstance(UnRegisterNodeManagerRequest.class); request.setNodeId(this.nodeId); try { resourceTracker.unRegisterNodeManager(request); LOG.info("Successfully Unregistered the Node " + this.nodeId + " with ResourceManager."); } catch (Exception e) { LOG.warn("Unregistration of the Node " + this.nodeId + " failed.", e); } }
private void unRegisterNM() { RecordFactory recordFactory = RecordFactoryPBImpl.get(); UnRegisterNodeManagerRequest request = recordFactory .newRecordInstance(UnRegisterNodeManagerRequest.class); request.setNodeId(this.nodeId); try { resourceTracker.unRegisterNodeManager(request); LOG.info("Successfully Unregistered the Node " + this.nodeId + " with ResourceManager."); } catch (Exception e) { LOG.warn("Unregistration of the Node " + this.nodeId + " failed.", e); } }
public void unRegisterNode() throws Exception { UnRegisterNodeManagerRequest request = Records .newRecord(UnRegisterNodeManagerRequest.class); request.setNodeId(nodeId); resourceTracker.unRegisterNodeManager(request); }
request.setNodeId(BuilderUtils.newNodeId("host", 1234)); resourceTrackerService.unRegisterNodeManager(request); checkShutdownNMCount(rm, 0); Assert.assertEquals(NodeAction.SHUTDOWN, heartbeatResponse.getNodeAction()); checkDecommissionedNMCount(rm, decommisionedNMsCount); request.setNodeId(nm1.getNodeId()); resourceTrackerService.unRegisterNodeManager(request); checkShutdownNMCount(rm, ++shutdownNMsCount); hostFile.getAbsolutePath()); rm.getNodesListManager().refreshNodes(conf); request.setNodeId(nm2.getNodeId()); resourceTrackerService.unRegisterNodeManager(request); checkShutdownNMCount(rm, ++shutdownNMsCount);
@Test public void testUnhealthyNMUnregistration() throws Exception { Configuration conf = new Configuration(); rm = new MockRM(conf); rm.start(); ResourceTrackerService resourceTrackerService = rm .getResourceTrackerService(); MockNM nm1 = rm.registerNode("host1:1234", 5120); Assert.assertEquals(0, ClusterMetrics.getMetrics().getUnhealthyNMs()); // node healthy nm1.nodeHeartbeat(true); int shutdownNMsCount = ClusterMetrics.getMetrics().getNumShutdownNMs(); // node unhealthy nm1.nodeHeartbeat(false); checkUnhealthyNMCount(rm, nm1, true, 1); UnRegisterNodeManagerRequest request = Records .newRecord(UnRegisterNodeManagerRequest.class); request.setNodeId(nm1.getNodeId()); resourceTrackerService.unRegisterNodeManager(request); checkShutdownNMCount(rm, ++shutdownNMsCount); }
@Test public void testNMUnregistration() throws Exception { Configuration conf = new Configuration(); rm = new MockRM(conf); rm.start(); ResourceTrackerService resourceTrackerService = rm .getResourceTrackerService(); MockNM nm1 = rm.registerNode("host1:1234", 5120); int shutdownNMsCount = ClusterMetrics.getMetrics() .getNumShutdownNMs(); NodeHeartbeatResponse nodeHeartbeat = nm1.nodeHeartbeat(true); Assert.assertTrue(NodeAction.NORMAL.equals(nodeHeartbeat.getNodeAction())); UnRegisterNodeManagerRequest request = Records .newRecord(UnRegisterNodeManagerRequest.class); request.setNodeId(nm1.getNodeId()); resourceTrackerService.unRegisterNodeManager(request); checkShutdownNMCount(rm, ++shutdownNMsCount); // The RM should remove the node after unregistration, hence send a reboot // command. nodeHeartbeat = nm1.nodeHeartbeat(true); Assert.assertTrue(NodeAction.RESYNC.equals(nodeHeartbeat.getNodeAction())); }