Prechádzať zdrojové kódy

YARN-9764. Print application submission context label in application summary. Contributed by Manoj Kumar

(cherry picked from commit 43e389b9801e09741fdf78fef067b8ac60f691c8)
(cherry picked from commit 45220d115797663b8749980b78a61bafcb2344f1)
Jonathan Hung 5 rokov pred
rodič
commit
080fc6d943

+ 8 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java

@@ -207,7 +207,14 @@ public class RMAppManager implements EventHandler<RMAppManagerEvent>,
                   metrics.getPreemptedResourceSecondsMap()))
           .add("applicationTags", StringHelper.CSV_JOINER.join(
               app.getApplicationTags() != null ? new TreeSet<>(
-                  app.getApplicationTags()) : Collections.<String>emptySet()));
+                  app.getApplicationTags()) : Collections.<String>emptySet()))
+          .add("applicationNodeLabel",
+              app.getApplicationSubmissionContext().getNodeLabelExpression()
+                  == null
+                  ? ""
+                  : app.getApplicationSubmissionContext()
+                      .getNodeLabelExpression());
+
       return summary;
     }
 

+ 4 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java

@@ -990,6 +990,9 @@ public class TestAppManager{
   @Test (timeout = 30000)
   public void testEscapeApplicationSummary() {
     RMApp app = mock(RMAppImpl.class);
+    ApplicationSubmissionContext asc = mock(ApplicationSubmissionContext.class);
+    when(asc.getNodeLabelExpression()).thenReturn("test");
+    when(app.getApplicationSubmissionContext()).thenReturn(asc);
     when(app.getApplicationId()).thenReturn(
         ApplicationId.newInstance(100L, 1));
     when(app.getName()).thenReturn("Multiline\n\n\r\rAppName");
@@ -1028,6 +1031,7 @@ public class TestAppManager{
     assertTrue(msg.contains("preemptedResources=<memory:1234\\, vCores:56>"));
     assertTrue(msg.contains("applicationType=MAPREDUCE"));
     assertTrue(msg.contains("applicationTags=tag1\\,tag2"));
+    assertTrue(msg.contains("applicationNodeLabel=test"));
   }
 
   @Test