This is an automated email from the ASF dual-hosted git repository.
snemeth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 7284d23 YARN-11006. Allow overriding user limit factor and
maxAMResourcePercent with AQCv2 templates. Contributed by Benjamin Teke
7284d23 is described below
commit 7284d234765547072ba00477128d811aa302fc3f
Author: Szilard Nemeth <[email protected]>
AuthorDate: Tue Dec 7 15:43:55 2021 +0100
YARN-11006. Allow overriding user limit factor and maxAMResourcePercent
with AQCv2 templates. Contributed by Benjamin Teke
---
.../resourcemanager/scheduler/capacity/LeafQueue.java | 2 +-
.../TestCapacitySchedulerNewQueueAutoCreation.java | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
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/LeafQueue.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/LeafQueue.java
index c7f42d1..4592f2a 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/LeafQueue.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/LeafQueue.java
@@ -1707,12 +1707,12 @@ public class LeafQueue extends AbstractCSQueue {
@Override
protected void setDynamicQueueProperties(
CapacitySchedulerConfiguration configuration) {
- super.setDynamicQueueProperties(configuration);
// set to -1, to disable it
configuration.setUserLimitFactor(getQueuePath(), -1);
// Set Max AM percentage to a higher value
configuration.setMaximumApplicationMasterResourcePerQueuePercent(
getQueuePath(), 1f);
+ super.setDynamicQueueProperties(configuration);
}
private void updateSchedulerHealthForCompletedContainer(
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/TestCapacitySchedulerNewQueueAutoCreation.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/TestCapacitySchedulerNewQueueAutoCreation.java
index 9b23fdd..3d40ccf 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/TestCapacitySchedulerNewQueueAutoCreation.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/TestCapacitySchedulerNewQueueAutoCreation.java
@@ -688,11 +688,27 @@ public class TestCapacitySchedulerNewQueueAutoCreation
LeafQueue a2 = createQueue("root.a.a-auto.a2");
Assert.assertEquals("weight is not set by template", 6f,
a2.getQueueCapacities().getWeight(), 1e-6);
+ Assert.assertEquals("user limit factor should be disabled with dynamic
queues",
+ -1f, a2.getUserLimitFactor(), 1e-6);
+ Assert.assertEquals("maximum AM resource percent should be 1 with dynamic
queues",
+ 1f, a2.getMaxAMResourcePerQueuePercent(), 1e-6);
+
+ // Set the user-limit-factor and maximum-am-resource-percent via templates
to ensure their
+ // modified defaults are indeed overridden
+ csConf.set(AutoCreatedQueueTemplate.getAutoQueueTemplatePrefix(
+ "root.a.*") + "user-limit-factor", "10");
+ csConf.set(AutoCreatedQueueTemplate.getAutoQueueTemplatePrefix(
+ "root.a.*") + "maximum-am-resource-percent", "0.8");
cs.reinitialize(csConf, mockRM.getRMContext());
a2 = (LeafQueue) cs.getQueue("root.a.a-auto.a2");
Assert.assertEquals("weight is overridden", 6f,
a2.getQueueCapacities().getWeight(), 1e-6);
+ Assert.assertEquals("user limit factor should be modified by templates",
+ 10f, a2.getUserLimitFactor(), 1e-6);
+ Assert.assertEquals("maximum AM resource percent should be modified by
templates",
+ 0.8f, a2.getMaxAMResourcePerQueuePercent(), 1e-6);
+
csConf.setNonLabeledQueueWeight("root.a.a-auto.a2", 4f);
cs.reinitialize(csConf, mockRM.getRMContext());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]