diff --git 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 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 15b1ef93122..afd6ed9e0c5 100644 --- 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 +++ 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 @@ -152,7 +152,7 @@ public static final String MAXIMUM_ALLOCATION_VCORES = "maximum-allocation-vcores"; /** - * Ordering policy of queues + * Ordering policy of apps */ public static final String ORDERING_POLICY = "ordering-policy"; @@ -393,7 +393,7 @@ static String getQueuePrefix(String queue) { } static String getQueueOrderingPolicyPrefix(String queue) { - String queueName = PREFIX + queue + DOT + ORDERING_POLICY + DOT; + String queueName = PREFIX + queue + DOT + QUEUE_ORDERING_POLICY + DOT; return queueName; } @@ -547,9 +547,6 @@ public int getUserLimit(String queue) { return userLimit; } - // TODO (wangda): We need to better distinguish app ordering policy and queue - // ordering policy's classname / configuration options, etc. And dedup code - // if possible. @SuppressWarnings("unchecked") public OrderingPolicy getAppOrderingPolicy( String queue) { @@ -1529,6 +1526,7 @@ public void setGlobalMaximumApplicationsPerQueue(int val) { /** * Ordering policy inside a parent queue to sort queues */ + public static final String QUEUE_ORDERING_POLICY = "queue-ordering-policy"; /** * Less relative usage queue can get next resource, this is default @@ -1547,7 +1545,7 @@ public void setGlobalMaximumApplicationsPerQueue(int val) { @Private public void setQueueOrderingPolicy(String queue, String policy) { - set(getQueuePrefix(queue) + ORDERING_POLICY, policy); + set(getQueuePrefix(queue) + QUEUE_ORDERING_POLICY, policy); } @Private @@ -1558,7 +1556,7 @@ public QueueOrderingPolicy getQueueOrderingPolicy(String queue, defaultPolicy = DEFAULT_QUEUE_ORDERING_POLICY; } - String policyType = get(getQueuePrefix(queue) + ORDERING_POLICY, + String policyType = get(getQueuePrefix(queue) + QUEUE_ORDERING_POLICY, defaultPolicy).trim(); QueueOrderingPolicy qop; @@ -1582,11 +1580,11 @@ public QueueOrderingPolicy getQueueOrderingPolicy(String queue, } /* - * Get global configuration for ordering policies + * Get global configuration for queue ordering policies */ - private String getOrderingPolicyGlobalConfigKey(String orderPolicyName, + private String getQueueOrderingPolicyGlobalConfigKey(String orderPolicyName, String configKey) { - return PREFIX + ORDERING_POLICY + DOT + orderPolicyName + DOT + configKey; + return PREFIX + QUEUE_ORDERING_POLICY + DOT + orderPolicyName + DOT + configKey; } /** @@ -1619,7 +1617,7 @@ private String getOrderingPolicyGlobalConfigKey(String orderPolicyName, * @return allowed or not */ public boolean getPUOrderingPolicyUnderUtilizedPreemptionEnabled() { - return getBoolean(getOrderingPolicyGlobalConfigKey( + return getBoolean(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_ENABLED), false); } @@ -1627,7 +1625,7 @@ public boolean getPUOrderingPolicyUnderUtilizedPreemptionEnabled() { @VisibleForTesting public void setPUOrderingPolicyUnderUtilizedPreemptionEnabled( boolean enabled) { - setBoolean(getOrderingPolicyGlobalConfigKey( + setBoolean(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_ENABLED), enabled); } @@ -1650,7 +1648,7 @@ public void setPUOrderingPolicyUnderUtilizedPreemptionEnabled( * @return delay */ public long getPUOrderingPolicyUnderUtilizedPreemptionDelay() { - return getLong(getOrderingPolicyGlobalConfigKey( + return getLong(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_DELAY), 60000L); } @@ -1658,7 +1656,7 @@ public long getPUOrderingPolicyUnderUtilizedPreemptionDelay() { @VisibleForTesting public void setPUOrderingPolicyUnderUtilizedPreemptionDelay( long timeout) { - setLong(getOrderingPolicyGlobalConfigKey( + setLong(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_DELAY), timeout); } @@ -1673,7 +1671,7 @@ public void setPUOrderingPolicyUnderUtilizedPreemptionDelay( * @return allow or not */ public boolean getPUOrderingPolicyUnderUtilizedPreemptionMoveReservation() { - return getBoolean(getOrderingPolicyGlobalConfigKey( + return getBoolean(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_MOVE_RESERVATION), false); } @@ -1681,7 +1679,7 @@ public boolean getPUOrderingPolicyUnderUtilizedPreemptionMoveReservation() { @VisibleForTesting public void setPUOrderingPolicyUnderUtilizedPreemptionMoveReservation( boolean allowMoveReservation) { - setBoolean(getOrderingPolicyGlobalConfigKey( + setBoolean(getQueueOrderingPolicyGlobalConfigKey( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY, UNDER_UTILIZED_PREEMPTION_MOVE_RESERVATION), allowMoveReservation); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java index c2f4511f1fa..06408d80b7e 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java @@ -886,10 +886,10 @@ private void initializeConfProperties(CapacitySchedulerConfiguration conf) conf.setQueuePriority("root.A", 1); conf.setQueuePriority("root.B", 2); - conf.set(PREFIX + "root.ordering-policy", "priority-utilization"); - conf.set(PREFIX + "ordering-policy.priority-utilization.underutilized-preemption.enabled", "true"); - conf.set(PREFIX + "ordering-policy.priority-utilization.underutilized-preemption.allow-move-reservation", "false"); - conf.set(PREFIX + "ordering-policy.priority-utilization.underutilized-preemption.reserved-container-delay-ms", "0"); + conf.set(PREFIX + "root.queue-ordering-policy", "priority-utilization"); + conf.set(PREFIX + "queue-ordering-policy.priority-utilization.underutilized-preemption.enabled", "true"); + conf.set(PREFIX + "queue-ordering-policy.priority-utilization.underutilized-preemption.allow-move-reservation", "false"); + conf.set(PREFIX + "queue-ordering-policy.priority-utilization.underutilized-preemption.reserved-container-delay-ms", "0"); conf.set(PREFIX + "root.accessible-node-labels.x.capacity", "100"); // Setup queue access to node labels