From e53fcd52eec36b06ac69e1a88f11ce2868328d47 Mon Sep 17 00:00:00 2001 From: Rohith Sharma K S Date: Thu, 2 Nov 2017 13:55:19 +0530 Subject: [PATCH] addendum patch for YARN-7289. (cherry picked from commit 940ffe3f9ce74286a8863e3743faf88a33c817a3) --- .../scheduler/AbstractYarnScheduler.java | 4 ++-- .../scheduler/capacity/CapacityScheduler.java | 2 +- .../rmapp/TestApplicationLifetimeMonitor.java | 24 ++++++++++--------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java index 5b6fdc65feb..3e41da7aa44 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java +++ b/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 diff --git a/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 b/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 index 6e7b8a8cfa6..d472d35bedc 100644 --- a/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 +++ b/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; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java index b1da9afc15e..037ed9999a3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java +++ b/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();