YARN-10600. Convert root queue in fs2cs weight mode conversion. Contributed by Benjamin Teke.
This commit is contained in:
parent
f565476939
commit
fa15594ae6
|
@ -28,6 +28,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSQueue;
|
||||||
|
|
||||||
public class WeightToWeightConverter
|
public class WeightToWeightConverter
|
||||||
implements CapacityConverter {
|
implements CapacityConverter {
|
||||||
|
private static final String ROOT_QUEUE = "root";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void convertWeightsForChildQueues(FSQueue queue,
|
public void convertWeightsForChildQueues(FSQueue queue,
|
||||||
|
@ -35,6 +36,10 @@ public class WeightToWeightConverter
|
||||||
List<FSQueue> children = queue.getChildQueues();
|
List<FSQueue> children = queue.getChildQueues();
|
||||||
|
|
||||||
if (queue instanceof FSParentQueue || !children.isEmpty()) {
|
if (queue instanceof FSParentQueue || !children.isEmpty()) {
|
||||||
|
if (queue.getName().equals(ROOT_QUEUE)) {
|
||||||
|
csConfig.set(getProperty(queue), getWeightString(queue));
|
||||||
|
}
|
||||||
|
|
||||||
children.forEach(fsQueue -> csConfig.set(
|
children.forEach(fsQueue -> csConfig.set(
|
||||||
getProperty(fsQueue), getWeightString(fsQueue)));
|
getProperty(fsQueue), getWeightString(fsQueue)));
|
||||||
csConfig.setBoolean(getAutoCreateV2EnabledProperty(queue), true);
|
csConfig.setBoolean(getAutoCreateV2EnabledProperty(queue), true);
|
||||||
|
|
|
@ -44,7 +44,9 @@ public class TestWeightToWeightConverter extends WeightConverterTestBase {
|
||||||
FSQueue root = createFSQueues();
|
FSQueue root = createFSQueues();
|
||||||
converter.convertWeightsForChildQueues(root, config);
|
converter.convertWeightsForChildQueues(root, config);
|
||||||
|
|
||||||
assertEquals("Converted items", 1,
|
assertEquals("root weight", "1.0w",
|
||||||
|
config.get(PREFIX + "root.capacity"));
|
||||||
|
assertEquals("Converted items", 2,
|
||||||
config.getPropsWithPrefix(PREFIX).size());
|
config.getPropsWithPrefix(PREFIX).size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,9 +55,11 @@ public class TestWeightToWeightConverter extends WeightConverterTestBase {
|
||||||
FSQueue root = createFSQueues(1);
|
FSQueue root = createFSQueues(1);
|
||||||
converter.convertWeightsForChildQueues(root, config);
|
converter.convertWeightsForChildQueues(root, config);
|
||||||
|
|
||||||
|
assertEquals("root weight", "1.0w",
|
||||||
|
config.get(PREFIX + "root.capacity"));
|
||||||
assertEquals("root.a weight", "1.0w",
|
assertEquals("root.a weight", "1.0w",
|
||||||
config.get(PREFIX + "root.a.capacity"));
|
config.get(PREFIX + "root.a.capacity"));
|
||||||
assertEquals("Number of properties", 2,
|
assertEquals("Number of properties", 3,
|
||||||
config.getPropsWithPrefix(PREFIX).size());
|
config.getPropsWithPrefix(PREFIX).size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,8 +69,10 @@ public class TestWeightToWeightConverter extends WeightConverterTestBase {
|
||||||
|
|
||||||
converter.convertWeightsForChildQueues(root, config);
|
converter.convertWeightsForChildQueues(root, config);
|
||||||
|
|
||||||
assertEquals("Number of properties", 4,
|
assertEquals("Number of properties", 5,
|
||||||
config.getPropsWithPrefix(PREFIX).size());
|
config.getPropsWithPrefix(PREFIX).size());
|
||||||
|
assertEquals("root weight", "1.0w",
|
||||||
|
config.get(PREFIX + "root.capacity"));
|
||||||
assertEquals("root.a weight", "1.0w",
|
assertEquals("root.a weight", "1.0w",
|
||||||
config.get(PREFIX + "root.a.capacity"));
|
config.get(PREFIX + "root.a.capacity"));
|
||||||
assertEquals("root.b weight", "2.0w",
|
assertEquals("root.b weight", "2.0w",
|
||||||
|
@ -90,7 +96,7 @@ public class TestWeightToWeightConverter extends WeightConverterTestBase {
|
||||||
FSQueue root = createParent(new ArrayList<>());
|
FSQueue root = createParent(new ArrayList<>());
|
||||||
converter.convertWeightsForChildQueues(root, config);
|
converter.convertWeightsForChildQueues(root, config);
|
||||||
|
|
||||||
assertEquals("Number of properties", 1,
|
assertEquals("Number of properties", 2,
|
||||||
config.getPropsWithPrefix(PREFIX).size());
|
config.getPropsWithPrefix(PREFIX).size());
|
||||||
assertTrue("root autocreate v2 enabled",
|
assertTrue("root autocreate v2 enabled",
|
||||||
config.getBoolean(PREFIX + "root.auto-queue-creation-v2.enabled",
|
config.getBoolean(PREFIX + "root.auto-queue-creation-v2.enabled",
|
||||||
|
|
Loading…
Reference in New Issue