Skip to content

Commit c44c9f9

Browse files
YARN-11393. Fs2cs could be extended to set ULF to -1 upon conversion (#5201)
1 parent b93b1c6 commit c44c9f9

File tree

2 files changed

+34
-1
lines changed
  • hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src

2 files changed

+34
-1
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSQueueConverter.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter;
1818

1919
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.PREFIX;
20+
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.DOT;
21+
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.USER_LIMIT_FACTOR;
2022

2123
import java.util.List;
2224
import java.util.stream.Collectors;
2325

2426
import org.apache.hadoop.conf.Configuration;
2527
import org.apache.hadoop.yarn.api.records.Resource;
28+
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration;
2629
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.ConfigurableResource;
2730
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSLeafQueue;
2831
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSQueue;
@@ -79,6 +82,7 @@ public void convertQueueHierarchy(FSQueue queue) {
7982
emitMaxParallelApps(queueName, queue);
8083
emitMaxAllocations(queueName, queue);
8184
emitPreemptionDisabled(queueName, queue);
85+
emitDefaultUserLimitFactor(queueName, children);
8286

8387
emitChildCapacity(queue);
8488
emitMaximumCapacity(queueName, queue);
@@ -215,6 +219,15 @@ private void emitPreemptionDisabled(String queueName, FSQueue queue) {
215219
}
216220
}
217221

222+
public void emitDefaultUserLimitFactor(String queueName, List<FSQueue> children) {
223+
if (children.isEmpty()) {
224+
capacitySchedulerConfig.setFloat(
225+
CapacitySchedulerConfiguration.
226+
PREFIX + queueName + DOT + USER_LIMIT_FACTOR,
227+
-1.0f);
228+
}
229+
}
230+
218231
/**
219232
* yarn.scheduler.fair.sizebasedweight ==>
220233
* yarn.scheduler.capacity.&lt;queue-path&gt;

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/TestFSConfigToCSConfigConverter.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter;
1818

1919
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.PREFIX;
20+
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.USER_LIMIT_FACTOR;
2021
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.DYNAMIC_MAX_ASSIGN;
2122
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.MAX_CAPACITY_PERCENTAGE;
2223
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.MAX_CHILD_CAPACITY;
@@ -182,7 +183,26 @@ public void testDefaultMaxAMShare() throws Exception {
182183
conf.get(PREFIX + "root.admins.alice.maximum-am-resource-percent"));
183184

184185
assertNull("root.users.joe maximum-am-resource-percent should be null",
185-
conf.get(PREFIX + "root.users.joe maximum-am-resource-percent"));
186+
conf.get(PREFIX + "root.users.joe.maximum-am-resource-percent"));
187+
}
188+
189+
@Test
190+
public void testDefaultUserLimitFactor() throws Exception {
191+
converter.convert(config);
192+
193+
Configuration conf = converter.getCapacitySchedulerConfig();
194+
195+
assertNull("root.users user-limit-factor should be null",
196+
conf.get(PREFIX + "root.users." + USER_LIMIT_FACTOR));
197+
198+
assertEquals("root.default user-limit-factor", "-1.0",
199+
conf.get(PREFIX + "root.default.user-limit-factor"));
200+
201+
assertEquals("root.users.joe user-limit-factor", "-1.0",
202+
conf.get(PREFIX + "root.users.joe.user-limit-factor"));
203+
204+
assertEquals("root.admins.bob user-limit-factor", "-1.0",
205+
conf.get(PREFIX + "root.admins.bob.user-limit-factor"));
186206
}
187207

188208
@Test

0 commit comments

Comments
 (0)