ソースを参照

addendum patch for YARN-7289.

(cherry picked from commit 940ffe3f9ce74286a8863e3743faf88a33c817a3)
Rohith Sharma K S 7 年 前
コミット
6005f0a3ee

+ 2 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java

@@ -1327,8 +1327,8 @@ public abstract class AbstractYarnScheduler
 
   @Override
   public long checkAndGetApplicationLifetime(String queueName, long lifetime) {
-    // -1 indicates, lifetime is not configured.
-    return -1;
+    // Lifetime is the application lifetime by default.
+    return lifetime;
   }
 
   @Override

+ 1 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java

@@ -2592,7 +2592,7 @@ public class CapacityScheduler extends
       long maximumApplicationLifetime =
           ((LeafQueue) queue).getMaximumApplicationLifetime();
 
-      // check only for maximum, that's enough because default cann't
+      // check only for maximum, that's enough because default can't
       // exceed maximum
       if (maximumApplicationLifetime <= 0) {
         return lifetimeRequestedByApp;

+ 13 - 11
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java

@@ -30,6 +30,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
 import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationTimeoutsRequest;
@@ -72,6 +73,8 @@ import org.junit.runners.Parameterized;
  */
 @RunWith(Parameterized.class)
 public class TestApplicationLifetimeMonitor {
+  private final long maxLifetime = 30L;
+
   private YarnConfiguration conf;
 
   @Parameterized.Parameters
@@ -90,7 +93,16 @@ public class TestApplicationLifetimeMonitor {
 
   @Before
   public void setup() throws IOException {
-    conf = new YarnConfiguration();
+    if (scheduler.equals(CapacityScheduler.class)) {
+      // Since there is limited lifetime monitoring support in fair scheduler
+      // it does not need queue setup
+      long defaultLifetime = 15L;
+      Configuration capacitySchedulerConfiguration =
+          setUpCSQueue(maxLifetime, defaultLifetime);
+      conf = new YarnConfiguration(capacitySchedulerConfiguration);
+    } else {
+      conf = new YarnConfiguration();
+    }
     // Always run for CS, since other scheduler do not support this.
     conf.setClass(YarnConfiguration.RM_SCHEDULER,
         scheduler, ResourceScheduler.class);
@@ -106,16 +118,6 @@ public class TestApplicationLifetimeMonitor {
       throws Exception {
     MockRM rm = null;
     try {
-      long maxLifetime = 30L;
-      long defaultLifetime = 15L;
-
-      YarnConfiguration newConf;
-      if (scheduler.equals(CapacityScheduler.class)) {
-        // Since there is limited lifetime monitoring support in fair scheduler
-        // it does not need queue setup
-        conf =
-            new YarnConfiguration(setUpCSQueue(maxLifetime, defaultLifetime));
-      }
       rm = new MockRM(conf);
       rm.start();