svn merge -c 1367719 FIXES: MAPREDUCE-4492. Configuring total queue capacity between 100.5 and 99.5 at perticular level is sucessfull (Mayank Bansal via bobby)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1367720 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5a17a40ee6
commit
e265f69a18
|
@ -650,6 +650,9 @@ Release 0.23.3 - UNRELEASED
|
||||||
MAPREDUCE-4493. Distibuted Cache Compatability Issues (Robert Evans
|
MAPREDUCE-4493. Distibuted Cache Compatability Issues (Robert Evans
|
||||||
via tgraves)
|
via tgraves)
|
||||||
|
|
||||||
|
MAPREDUCE-4492. Configuring total queue capacity between 100.5 and 99.5 at
|
||||||
|
perticular level is sucessfull (Mayank Bansal via bobby)
|
||||||
|
|
||||||
Release 0.23.2 - UNRELEASED
|
Release 0.23.2 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -193,7 +193,7 @@ public class ParentQueue implements CSQueue {
|
||||||
", acls=" + aclsString);
|
", acls=" + aclsString);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float PRECISION = 0.005f; // 0.05% precision
|
private static float PRECISION = 0.0005f; // 0.05% precision
|
||||||
void setChildQueues(Collection<CSQueue> childQueues) {
|
void setChildQueues(Collection<CSQueue> childQueues) {
|
||||||
|
|
||||||
// Validate
|
// Validate
|
||||||
|
|
|
@ -34,6 +34,8 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
|
@ -270,6 +272,61 @@ public class TestParentQueue {
|
||||||
verifyQueueMetrics(b, 9*GB, clusterResource);
|
verifyQueueMetrics(b, 9*GB, clusterResource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSingleLevelQueuesPrecision() throws Exception {
|
||||||
|
// Setup queue configs
|
||||||
|
setupSingleLevelQueues(csConf);
|
||||||
|
final String Q_A = CapacitySchedulerConfiguration.ROOT + "." + "a";
|
||||||
|
csConf.setCapacity(Q_A, 30);
|
||||||
|
final String Q_B = CapacitySchedulerConfiguration.ROOT + "." + "b";
|
||||||
|
csConf.setCapacity(Q_B, 70.5F);
|
||||||
|
|
||||||
|
Map<String, CSQueue> queues = new HashMap<String, CSQueue>();
|
||||||
|
boolean exceptionOccured = false;
|
||||||
|
try {
|
||||||
|
CapacityScheduler.parseQueue(csContext, csConf, null,
|
||||||
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
||||||
|
CapacityScheduler.queueComparator,
|
||||||
|
CapacityScheduler.applicationComparator, TestUtils.spyHook);
|
||||||
|
} catch (IllegalArgumentException ie) {
|
||||||
|
exceptionOccured = true;
|
||||||
|
}
|
||||||
|
if (!exceptionOccured) {
|
||||||
|
Assert.fail("Capacity is more then 100% so should be failed.");
|
||||||
|
}
|
||||||
|
csConf.setCapacity(Q_A, 30);
|
||||||
|
csConf.setCapacity(Q_B, 70);
|
||||||
|
exceptionOccured = false;
|
||||||
|
queues.clear();
|
||||||
|
try {
|
||||||
|
CapacityScheduler.parseQueue(csContext, csConf, null,
|
||||||
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
||||||
|
CapacityScheduler.queueComparator,
|
||||||
|
CapacityScheduler.applicationComparator, TestUtils.spyHook);
|
||||||
|
} catch (IllegalArgumentException ie) {
|
||||||
|
exceptionOccured = true;
|
||||||
|
}
|
||||||
|
if (exceptionOccured) {
|
||||||
|
Assert.fail("Capacity is 100% so should not be failed.");
|
||||||
|
}
|
||||||
|
csConf.setCapacity(Q_A, 30);
|
||||||
|
csConf.setCapacity(Q_B, 70.005F);
|
||||||
|
exceptionOccured = false;
|
||||||
|
queues.clear();
|
||||||
|
try {
|
||||||
|
CapacityScheduler.parseQueue(csContext, csConf, null,
|
||||||
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
||||||
|
CapacityScheduler.queueComparator,
|
||||||
|
CapacityScheduler.applicationComparator, TestUtils.spyHook);
|
||||||
|
} catch (IllegalArgumentException ie) {
|
||||||
|
exceptionOccured = true;
|
||||||
|
}
|
||||||
|
if (exceptionOccured) {
|
||||||
|
Assert
|
||||||
|
.fail("Capacity is under PRECISION which is .05% so should not be failed.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static final String C = "c";
|
private static final String C = "c";
|
||||||
private static final String C1 = "c1";
|
private static final String C1 = "c1";
|
||||||
private static final String C11 = "c11";
|
private static final String C11 = "c11";
|
||||||
|
|
Loading…
Reference in New Issue