Prechádzať zdrojové kódy

YARN-10388. RMNode updatedCapability flag not set while RecommissionNodeTransition. Contributed by Pranjal Protim Borah

bibinchundatt 4 rokov pred
rodič
commit
81da221c75

+ 3 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java

@@ -1407,6 +1407,9 @@ public class NodeStatusUpdaterImpl extends AbstractService implements
           if (newResource != null) {
           if (newResource != null) {
             updateNMResource(newResource);
             updateNMResource(newResource);
             LOG.debug("Node's resource is updated to {}", newResource);
             LOG.debug("Node's resource is updated to {}", newResource);
+            if (!totalResource.equals(newResource)) {
+              LOG.info("Node's resource is updated to {}", newResource);
+            }
           }
           }
           if (timelineServiceV2Enabled) {
           if (timelineServiceV2Enabled) {
             updateTimelineCollectorData(response);
             updateTimelineCollectorData(response);

+ 1 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java

@@ -1234,6 +1234,7 @@ public class RMNodeImpl implements RMNode, EventHandler<RMNodeEvent> {
       if (rmNode.originalTotalCapability != null) {
       if (rmNode.originalTotalCapability != null) {
         rmNode.totalCapability = rmNode.originalTotalCapability;
         rmNode.totalCapability = rmNode.originalTotalCapability;
         rmNode.originalTotalCapability = null;
         rmNode.originalTotalCapability = null;
+        rmNode.updatedCapability = true;
       }
       }
       LOG.info("Node " + rmNode.nodeId + " in DECOMMISSIONING is " +
       LOG.info("Node " + rmNode.nodeId + " in DECOMMISSIONING is " +
           "recommissioned back to RUNNING.");
           "recommissioned back to RUNNING.");

+ 5 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMNodeTransitions.java

@@ -19,6 +19,8 @@ package org.apache.hadoop.yarn.server.resourcemanager;
 
 
 import static org.apache.hadoop.yarn.server.resourcemanager.MockNM.createMockNodeStatus;
 import static org.apache.hadoop.yarn.server.resourcemanager.MockNM.createMockNodeStatus;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doReturn;
@@ -1062,10 +1064,13 @@ public class TestRMNodeTransitions {
     Resource oldCapacity = node.getTotalCapability();
     Resource oldCapacity = node.getTotalCapability();
     assertEquals("Memory resource is not match.", oldCapacity.getMemorySize(), 4096);
     assertEquals("Memory resource is not match.", oldCapacity.getMemorySize(), 4096);
     assertEquals("CPU resource is not match.", oldCapacity.getVirtualCores(), 4);
     assertEquals("CPU resource is not match.", oldCapacity.getVirtualCores(), 4);
+    assertFalse("updatedCapability should be false.",
+        node.isUpdatedCapability());
     node.handle(new RMNodeEvent(node.getNodeID(),
     node.handle(new RMNodeEvent(node.getNodeID(),
         RMNodeEventType.RECOMMISSION));
         RMNodeEventType.RECOMMISSION));
     Resource originalCapacity = node.getOriginalTotalCapability();
     Resource originalCapacity = node.getOriginalTotalCapability();
     assertEquals("Original total capability not null after recommission", null, originalCapacity);
     assertEquals("Original total capability not null after recommission", null, originalCapacity);
+    assertTrue("updatedCapability should be set.", node.isUpdatedCapability());
   }
   }
 
 
   @Test
   @Test