This is an automated email from the ASF dual-hosted git repository.
pbacsko 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 5c15815 YARN-10375. CS Mapping rule config parser should return
MappingRule objects. Contributed by Gergely Pollak.
5c15815 is described below
commit 5c1581577393f6a14bf31db9b3fde61cf11a2608
Author: Peter Bacsko <[email protected]>
AuthorDate: Thu Sep 3 18:54:22 2020 +0200
YARN-10375. CS Mapping rule config parser should return MappingRule
objects. Contributed by Gergely Pollak.
---
.../capacity/CapacitySchedulerConfiguration.java | 45 ++++++++++++++++++++++
1 file changed, 45 insertions(+)
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/CapacitySchedulerConfiguration.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/CapacitySchedulerConfiguration.java
index 96f7533..371c974 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/CapacitySchedulerConfiguration.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/CapacitySchedulerConfiguration.java
@@ -21,6 +21,7 @@ package
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
+import org.apache.hadoop.yarn.server.resourcemanager.placement.MappingRule;
import
org.apache.hadoop.yarn.server.resourcemanager.placement.QueuePlacementRuleUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -280,6 +281,10 @@ public class CapacitySchedulerConfiguration extends
ReservationSchedulerConfigur
public static final String QUEUE_MAPPING = PREFIX + "queue-mappings";
@Private
+ public static final String QUEUE_MAPPING_NAME =
+ YarnConfiguration.QUEUE_PLACEMENT_RULES + ".app-name";
+
+ @Private
public static final String ENABLE_QUEUE_MAPPING_OVERRIDE = QUEUE_MAPPING +
"-override.enable";
@Private
@@ -1159,6 +1164,46 @@ public class CapacitySchedulerConfiguration extends
ReservationSchedulerConfigur
return mappings;
}
+ public List<MappingRule> getMappingRules() {
+ List<MappingRule> mappings = new ArrayList<MappingRule>();
+ Collection<String> mappingsString =
+ getTrimmedStringCollection(QUEUE_MAPPING);
+
+ for (String mappingValue : mappingsString) {
+ String[] mapping =
+ StringUtils.getTrimmedStringCollection(mappingValue, ":")
+ .toArray(new String[] {});
+ if (mapping.length != 3 || mapping[1].length() == 0
+ || mapping[2].length() == 0) {
+ throw new IllegalArgumentException(
+ "Illegal queue mapping " + mappingValue);
+ }
+
+ if (mapping[0].equals("u") || mapping[0].equals("g")) {
+ mappings.add(MappingRule.createLegacyRule(
+ mapping[0], mapping[1], mapping[2]));
+ } else {
+ throw new IllegalArgumentException(
+ "unknown mapping prefix " + mapping[0]);
+ }
+ }
+
+ mappingsString = getTrimmedStringCollection(QUEUE_MAPPING_NAME);
+ for (String mappingValue : mappingsString) {
+ String[] mapping =
+ StringUtils.getTrimmedStringCollection(mappingValue, ":")
+ .toArray(new String[] {});
+ if (mapping.length != 2 || mapping[1].length() == 0) {
+ throw new IllegalArgumentException(
+ "Illegal queue mapping " + mappingValue);
+ }
+
+ mappings.add(MappingRule.createLegacyRule(mapping[0], mapping[1]));
+ }
+
+ return mappings;
+ }
+
@Private
@VisibleForTesting
public void setQueuePlacementRules(Collection<String> queuePlacementRules) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]