Repository: hadoop Updated Branches: refs/heads/branch-2.7.1 5a1d236ba -> a4c88298d
Revert "YARN-3969. Allow jobs to be submitted to reservation that is active but does not have any allocations. (subru via curino)" moving this to branch-2.7 per Akira's request. This reverts commit 5a1d236ba0f9292bff2a27e3bc8d0e73d7755898. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a4c88298 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a4c88298 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a4c88298 Branch: refs/heads/branch-2.7.1 Commit: a4c88298d2439782b49b53e470c03a96e24773d6 Parents: 5a1d236 Author: carlo curino <Carlo Curino> Authored: Fri Jul 24 08:52:46 2015 -0700 Committer: carlo curino <Carlo Curino> Committed: Fri Jul 24 08:52:46 2015 -0700 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 --- .../scheduler/capacity/ReservationQueue.java | 4 +++ .../capacity/TestReservationQueue.java | 26 +++++++++----------- 3 files changed, 16 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4c88298/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 079ca5c..450ec67 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -184,9 +184,6 @@ Release 2.7.1 - 2015-07-06 YARN-3850. NM fails to read files from full disks which can lead to container logs being lost and other issues (Varun Saxena via jlowe) - YARN-3969. Allow jobs to be submitted to reservation that is active - but does not have any allocations. (subru via curino) - Release 2.7.0 - 2015-04-20 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4c88298/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ReservationQueue.java ---------------------------------------------------------------------- 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/ReservationQueue.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/ReservationQueue.java index 19ce9f3..a8d17cf 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/ReservationQueue.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/ReservationQueue.java @@ -39,9 +39,12 @@ public class ReservationQueue extends LeafQueue { private PlanQueue parent; + private int maxSystemApps; + public ReservationQueue(CapacitySchedulerContext cs, String queueName, PlanQueue parent) throws IOException { super(cs, queueName, parent, null); + maxSystemApps = cs.getConfiguration().getMaximumSystemApplications(); // the following parameters are common to all reservation in the plan updateQuotas(parent.getUserLimitForReservation(), parent.getUserLimitFactor(), @@ -87,6 +90,7 @@ public class ReservationQueue extends LeafQueue { } setCapacity(capacity); setAbsoluteCapacity(getParent().getAbsoluteCapacity() * getCapacity()); + setMaxApplications((int) (maxSystemApps * getAbsoluteCapacity())); // note: we currently set maxCapacity to capacity // this might be revised later setMaxCapacity(entitlement.getMaxCapacity()); http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4c88298/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestReservationQueue.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestReservationQueue.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestReservationQueue.java index e23e93c..4e6c73d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestReservationQueue.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestReservationQueue.java @@ -18,7 +18,6 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; @@ -40,7 +39,6 @@ public class TestReservationQueue { CapacitySchedulerConfiguration csConf; CapacitySchedulerContext csContext; - final static int DEF_MAX_APPS = 10000; final static int GB = 1024; private final ResourceCalculator resourceCalculator = new DefaultResourceCalculator(); @@ -68,13 +66,7 @@ public class TestReservationQueue { // create a queue PlanQueue pq = new PlanQueue(csContext, "root", null, null); reservationQueue = new ReservationQueue(csContext, "a", pq); - } - private void validateReservationQueue(double capacity) { - assertTrue(" actual capacity: " + reservationQueue.getCapacity(), - reservationQueue.getCapacity() - capacity < CSQueueUtils.EPSILON); - assertEquals(reservationQueue.maxApplications, DEF_MAX_APPS); - assertEquals(reservationQueue.maxApplicationsPerUser, DEF_MAX_APPS); } @Test @@ -82,20 +74,25 @@ public class TestReservationQueue { // verify that setting, adding, subtracting capacity works reservationQueue.setCapacity(1.0F); - validateReservationQueue(1); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() - 1 < CSQueueUtils.EPSILON); reservationQueue.setEntitlement(new QueueEntitlement(0.9f, 1f)); - validateReservationQueue(0.9); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() - 0.9 < CSQueueUtils.EPSILON); reservationQueue.setEntitlement(new QueueEntitlement(1f, 1f)); - validateReservationQueue(1); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() - 1 < CSQueueUtils.EPSILON); reservationQueue.setEntitlement(new QueueEntitlement(0f, 1f)); - validateReservationQueue(0); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() < CSQueueUtils.EPSILON); try { reservationQueue.setEntitlement(new QueueEntitlement(1.1f, 1f)); fail(); } catch (SchedulerDynamicEditException iae) { // expected - validateReservationQueue(1); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() - 1 < CSQueueUtils.EPSILON); } try { @@ -103,7 +100,8 @@ public class TestReservationQueue { fail(); } catch (SchedulerDynamicEditException iae) { // expected - validateReservationQueue(1); + assertTrue(" actual capacity: " + reservationQueue.getCapacity(), + reservationQueue.getCapacity() - 1 < CSQueueUtils.EPSILON); } }
