|
@@ -48,9 +48,6 @@ import org.apache.log4j.spi.LoggingEvent;
|
|
import org.junit.Assert;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
|
|
|
-/**
|
|
|
|
- * Tests fair scheduler configuration.
|
|
|
|
- */
|
|
|
|
public class TestFairSchedulerConfiguration {
|
|
public class TestFairSchedulerConfiguration {
|
|
|
|
|
|
private static final String A_CUSTOM_RESOURCE = "a-custom-resource";
|
|
private static final String A_CUSTOM_RESOURCE = "a-custom-resource";
|
|
@@ -105,152 +102,67 @@ public class TestFairSchedulerConfiguration {
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void testParseResourceConfigValue() throws Exception {
|
|
public void testParseResourceConfigValue() throws Exception {
|
|
- Resource expected = BuilderUtils.newResource(5 * 1024, 2);
|
|
|
|
- Resource clusterResource = BuilderUtils.newResource(10 * 1024, 4);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("2 vcores, 5120 mb").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("5120 mb, 2 vcores").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("2vcores,5120mb").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("5120mb,2vcores").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("5120mb mb, 2 vcores").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("5120 Mb, 2 vCores").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" 5120 mb, 2 vcores ").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" 5120.3 mb, 2.35 vcores ").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" 5120. mb, 2. vcores ").getResource());
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("2 vcores, 1024 mb").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("1024 mb, 2 vcores").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("2vcores,1024mb").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("1024mb,2vcores").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("1024 mb, 2 vcores").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("1024 Mb, 2 vCores").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue(" 1024 mb, 2 vcores ").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue(" 1024.3 mb, 2.35 vcores ").getResource());
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue(" 1024. mb, 2. vcores ").getResource());
|
|
|
|
+
|
|
|
|
+ Resource clusterResource = BuilderUtils.newResource(2048, 4);
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue("50% memory, 50% cpu").
|
|
parseResourceConfigValue("50% memory, 50% cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue("50% Memory, 50% CpU").
|
|
parseResourceConfigValue("50% Memory, 50% CpU").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(BuilderUtils.newResource(5 * 1024, 4),
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
|
|
+ parseResourceConfigValue("50%").getResource(clusterResource));
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 4),
|
|
parseResourceConfigValue("50% memory, 100% cpu").
|
|
parseResourceConfigValue("50% memory, 100% cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(BuilderUtils.newResource(5 * 1024, 4),
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 4),
|
|
parseResourceConfigValue(" 100% cpu, 50% memory").
|
|
parseResourceConfigValue(" 100% cpu, 50% memory").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(BuilderUtils.newResource(5 * 1024, 0),
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 0),
|
|
parseResourceConfigValue("50% memory, 0% cpu").
|
|
parseResourceConfigValue("50% memory, 0% cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue("50 % memory, 50 % cpu").
|
|
parseResourceConfigValue("50 % memory, 50 % cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue("50%memory,50%cpu").
|
|
parseResourceConfigValue("50%memory,50%cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue(" 50 % memory, 50 % cpu ").
|
|
parseResourceConfigValue(" 50 % memory, 50 % cpu ").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
|
|
+ assertEquals(BuilderUtils.newResource(1024, 2),
|
|
parseResourceConfigValue("50.% memory, 50.% cpu").
|
|
parseResourceConfigValue("50.% memory, 50.% cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
|
|
+
|
|
|
|
+ clusterResource = BuilderUtils.newResource(1024 * 10, 4);
|
|
assertEquals(BuilderUtils.newResource((int)(1024 * 10 * 0.109), 2),
|
|
assertEquals(BuilderUtils.newResource((int)(1024 * 10 * 0.109), 2),
|
|
parseResourceConfigValue("10.9% memory, 50.6% cpu").
|
|
parseResourceConfigValue("10.9% memory, 50.6% cpu").
|
|
getResource(clusterResource));
|
|
getResource(clusterResource));
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("50%").getResource(clusterResource));
|
|
|
|
-
|
|
|
|
- Configuration conf = new Configuration();
|
|
|
|
-
|
|
|
|
- conf.set(YarnConfiguration.RESOURCE_TYPES, "test1");
|
|
|
|
- ResourceUtils.resetResourceTypes(conf);
|
|
|
|
-
|
|
|
|
- clusterResource = BuilderUtils.newResource(10 * 1024, 4);
|
|
|
|
- expected = BuilderUtils.newResource(5 * 1024, 2);
|
|
|
|
- expected.setResourceValue("test1", Long.MAX_VALUE);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2, memory-mb=5120").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("memory-mb=5120, vcores=2").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2,memory-mb=5120").getResource());
|
|
|
|
- assertEquals(expected, parseResourceConfigValue(" vcores = 2 , "
|
|
|
|
- + "memory-mb = 5120 ").getResource());
|
|
|
|
-
|
|
|
|
- expected.setResourceValue("test1", 0L);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2, memory-mb=5120", 0L).getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("memory-mb=5120, vcores=2", 0L).getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2,memory-mb=5120", 0L).getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" vcores = 2 , memory-mb = 5120 ",
|
|
|
|
- 0L).getResource());
|
|
|
|
-
|
|
|
|
- clusterResource.setResourceValue("test1", 8L);
|
|
|
|
- expected.setResourceValue("test1", 4L);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("50%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2, memory-mb=5120, "
|
|
|
|
- + "test1=4").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("test1=4, vcores=2, "
|
|
|
|
- + "memory-mb=5120").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("memory-mb=5120, test1=4, "
|
|
|
|
- + "vcores=2").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=2,memory-mb=5120,"
|
|
|
|
- + "test1=4").getResource());
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" vcores = 2 , memory-mb = 5120 , "
|
|
|
|
- + "test1 = 4 ").getResource());
|
|
|
|
-
|
|
|
|
- expected = BuilderUtils.newResource(4 * 1024, 3);
|
|
|
|
- expected.setResourceValue("test1", 8L);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=75%, "
|
|
|
|
- + "memory-mb=40%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("memory-mb=40%, "
|
|
|
|
- + "vcores=75%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=75%,"
|
|
|
|
- + "memory-mb=40%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" vcores = 75 % , "
|
|
|
|
- + "memory-mb = 40 % ").getResource(clusterResource));
|
|
|
|
-
|
|
|
|
- expected.setResourceValue("test1", 4L);
|
|
|
|
-
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=75%, memory-mb=40%, "
|
|
|
|
- + "test1=50%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("test1=50%, vcores=75%, "
|
|
|
|
- + "memory-mb=40%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("memory-mb=40%, test1=50%, "
|
|
|
|
- + "vcores=75%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue("vcores=75%,memory-mb=40%,"
|
|
|
|
- + "test1=50%").getResource(clusterResource));
|
|
|
|
- assertEquals(expected,
|
|
|
|
- parseResourceConfigValue(" vcores = 75 % , memory-mb = 40 % , "
|
|
|
|
- + "test1 = 50 % ").getResource(clusterResource));
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
public void testNoUnits() throws Exception {
|
|
public void testNoUnits() throws Exception {
|
|
parseResourceConfigValue("1024");
|
|
parseResourceConfigValue("1024");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
public void testOnlyMemory() throws Exception {
|
|
public void testOnlyMemory() throws Exception {
|
|
parseResourceConfigValue("1024mb");
|
|
parseResourceConfigValue("1024mb");
|
|
@@ -260,7 +172,7 @@ public class TestFairSchedulerConfiguration {
|
|
public void testOnlyCPU() throws Exception {
|
|
public void testOnlyCPU() throws Exception {
|
|
parseResourceConfigValue("1024vcores");
|
|
parseResourceConfigValue("1024vcores");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
@Test(expected = AllocationConfigurationException.class)
|
|
public void testGibberish() throws Exception {
|
|
public void testGibberish() throws Exception {
|
|
parseResourceConfigValue("1o24vc0res");
|
|
parseResourceConfigValue("1o24vc0res");
|