YARN-637. FS: maxAssign is not honored. (kkambatl via tucu)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1480803 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b257aed8bd
commit
5d11e610a4
|
@ -287,6 +287,8 @@ Release 2.0.5-beta - UNRELEASED
|
||||||
YARN-507. Add interface visibility and stability annotations to FS
|
YARN-507. Add interface visibility and stability annotations to FS
|
||||||
interfaces/classes. (kkambatl via tucu)
|
interfaces/classes. (kkambatl via tucu)
|
||||||
|
|
||||||
|
YARN-637. FS: maxAssign is not honored. (kkambatl via tucu)
|
||||||
|
|
||||||
Release 2.0.4-alpha - 2013-04-25
|
Release 2.0.4-alpha - 2013-04-25
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -832,6 +832,7 @@ public class FairScheduler implements ResourceScheduler {
|
||||||
if (Resources.greaterThan(RESOURCE_CALCULATOR, clusterCapacity,
|
if (Resources.greaterThan(RESOURCE_CALCULATOR, clusterCapacity,
|
||||||
queueMgr.getRootQueue().assignContainer(node),
|
queueMgr.getRootQueue().assignContainer(node),
|
||||||
Resources.none())) {
|
Resources.none())) {
|
||||||
|
assignedContainers++;
|
||||||
assignedContainer = true;
|
assignedContainer = true;
|
||||||
}
|
}
|
||||||
if (!assignedContainer) { break; }
|
if (!assignedContainer) { break; }
|
||||||
|
|
|
@ -1382,6 +1382,37 @@ public class TestFairScheduler {
|
||||||
assertEquals(1, app2.getLiveContainers().size());
|
assertEquals(1, app2.getLiveContainers().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(timeout = 3000)
|
||||||
|
public void testMaxAssign() throws AllocationConfigurationException {
|
||||||
|
// set required scheduler configs
|
||||||
|
scheduler.assignMultiple = true;
|
||||||
|
scheduler.getQueueManager().getLeafQueue("root.default")
|
||||||
|
.setPolicy(SchedulingPolicy.getDefault());
|
||||||
|
|
||||||
|
RMNode node = MockNodes.newNodeInfo(1, Resources.createResource(16384));
|
||||||
|
NodeAddedSchedulerEvent nodeEvent = new NodeAddedSchedulerEvent(node);
|
||||||
|
NodeUpdateSchedulerEvent updateEvent = new NodeUpdateSchedulerEvent(node);
|
||||||
|
scheduler.handle(nodeEvent);
|
||||||
|
|
||||||
|
ApplicationAttemptId attId =
|
||||||
|
createSchedulingRequest(1024, "root.default", "user", 8);
|
||||||
|
FSSchedulerApp app = scheduler.applications.get(attId);
|
||||||
|
|
||||||
|
// set maxAssign to 2: only 2 containers should be allocated
|
||||||
|
scheduler.maxAssign = 2;
|
||||||
|
scheduler.update();
|
||||||
|
scheduler.handle(updateEvent);
|
||||||
|
assertEquals("Incorrect number of containers allocated", 2, app
|
||||||
|
.getLiveContainers().size());
|
||||||
|
|
||||||
|
// set maxAssign to -1: all remaining containers should be allocated
|
||||||
|
scheduler.maxAssign = -1;
|
||||||
|
scheduler.update();
|
||||||
|
scheduler.handle(updateEvent);
|
||||||
|
assertEquals("Incorrect number of containers allocated", 8, app
|
||||||
|
.getLiveContainers().size());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test to verify the behavior of
|
* Test to verify the behavior of
|
||||||
* {@link FSQueue#assignContainer(FSSchedulerNode)})
|
* {@link FSQueue#assignContainer(FSSchedulerNode)})
|
||||||
|
|
Loading…
Reference in New Issue