From b593898e81e40ab3767794305b998dcfb3f2ffe4 Mon Sep 17 00:00:00 2001 From: Syed Shameerur Rahman Date: Thu, 31 Oct 2024 17:30:45 +0530 Subject: [PATCH 1/3] Enable asynchronous scheduling by default for capacity scheduler --- .../CapacitySchedulerConfiguration.java | 2 +- .../fair/converter/FSYarnSiteConverter.java | 2 +- .../TestCapacitySchedulerAsyncScheduling.java | 6 ++++- .../converter/TestFSYarnSiteConverter.java | 4 +-- .../src/site/markdown/CapacityScheduler.md | 26 +++++++++++++++++++ 5 files changed, 35 insertions(+), 5 deletions(-) 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 8d9cf20793014..ea5c892ce3e5b 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 @@ -299,7 +299,7 @@ public class CapacitySchedulerConfiguration extends ReservationSchedulerConfigur DEFAULT_SCHEDULE_ASYNCHRONOUSLY_MAXIMUM_PENDING_BACKLOGS = 100; @Private - public static final boolean DEFAULT_SCHEDULE_ASYNCHRONOUSLY_ENABLE = false; + public static final boolean DEFAULT_SCHEDULE_ASYNCHRONOUSLY_ENABLE = true; @Private public static final String QUEUE_MAPPING = PREFIX + "queue-mappings"; 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/fair/converter/FSYarnSiteConverter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSYarnSiteConverter.java index 4f9029a79d0fb..3ee3bece9cb48 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSYarnSiteConverter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSYarnSiteConverter.java @@ -49,7 +49,7 @@ public void convertSiteProperties(Configuration conf, FairSchedulerConfiguration.CONTINUOUS_SCHEDULING_ENABLED, FairSchedulerConfiguration.DEFAULT_CONTINUOUS_SCHEDULING_ENABLED)) { yarnSiteConfig.setBoolean( - CapacitySchedulerConfiguration.SCHEDULE_ASYNCHRONOUSLY_ENABLE, true); + CapacitySchedulerConfiguration.SCHEDULE_ASYNCHRONOUSLY_ENABLE, enableAsyncScheduler); int interval = conf.getInt( FairSchedulerConfiguration.CONTINUOUS_SCHEDULING_SLEEP_MS, FairSchedulerConfiguration.DEFAULT_CONTINUOUS_SCHEDULING_SLEEP_MS); 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/TestCapacitySchedulerAsyncScheduling.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/TestCapacitySchedulerAsyncScheduling.java index b36e0edc73503..a80751ac24db6 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/TestCapacitySchedulerAsyncScheduling.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/TestCapacitySchedulerAsyncScheduling.java @@ -927,7 +927,11 @@ public void testReleaseOutdatedReservedContainer() throws Exception { * First proposal should be accepted, second proposal should be rejected * because it try to release an outdated reserved container */ - MockRM rm1 = new MockRM(); + // disable async-scheduling for simulating complex scene + Configuration disableAsyncConf = new Configuration(conf); + disableAsyncConf.setBoolean( + CapacitySchedulerConfiguration.SCHEDULE_ASYNCHRONOUSLY_ENABLE, false); + MockRM rm1 = new MockRM(disableAsyncConf); rm1.getRMContext().setNodeLabelManager(mgr); rm1.start(); MockNM nm1 = rm1.registerNode("h1:1234", 8 * GB); 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/fair/converter/TestFSYarnSiteConverter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/TestFSYarnSiteConverter.java index 4498373d73d01..3fcf213d61168 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/TestFSYarnSiteConverter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/TestFSYarnSiteConverter.java @@ -60,7 +60,7 @@ public void testSiteContinuousSchedulingConversion() { FairSchedulerConfiguration.CONTINUOUS_SCHEDULING_SLEEP_MS, 666); converter.convertSiteProperties(yarnConfig, yarnConvertedConfig, false, - false, false, null); + true, false, null); assertTrue("Cont. scheduling", yarnConvertedConfig.getBoolean( CapacitySchedulerConfiguration.SCHEDULE_ASYNCHRONOUSLY_ENABLE, false)); @@ -224,7 +224,7 @@ public void testAsyncSchedulingDisabledConversion() { assertFalse("Asynchronous scheduling", yarnConvertedConfig.getBoolean( CapacitySchedulerConfiguration.SCHEDULE_ASYNCHRONOUSLY_ENABLE, - CapacitySchedulerConfiguration.DEFAULT_SCHEDULE_ASYNCHRONOUSLY_ENABLE)); + false)); } @Test diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index 2b46c68bd7f30..0a4077d888df4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -37,6 +37,32 @@ The primary abstraction provided by the `CapacityScheduler` is the concept of *q To provide further control and predictability on sharing of resources, the `CapacityScheduler` supports *hierarchical queues* to ensure resources are shared among the sub-queues of an organization before other queues are allowed to use free resources, thereby providing *affinity* for sharing free resources among applications of a given organization. +The container allocation in `CapacityScheduler` can be triggered by using one of the following ways: + +* **Node heartbeat** : The container scheduling is triggered by a + heartbeat signal from a NodeManager to the ResourceManager.The scheduler then + selects an application that can be scheduled for the node. + This type of scheduling is random, and whichever node's heartbeat + gets the chance. If the NodeManager heartbeat interval is set to higher values, + it can negatively affect the container scheduling performance. + +* **Asynchronous scheduling** : The container scheduling is triggered by + single or multiple parallel threads running in the background. + The scheduler first selects a random node from the node list for scheduling, + and then it loops through the node list (circularly) to ensure that all the nodes get + a fair chance. This approach improves the scheduling performance because + it is proactive and does not need to wait for any events. + +* **Global scheduling** : It is similar to asynchronous scheduling, + but instead of randomly picking nodes, the nodes are selected for + scheduling based on factors such as the resource size, scheduling requirements, + and resource distribution of the applications. This approach allows the scheduler + to make optimal scheduling decisions. The node selection policy is pluggable, + meaning it can be customized to fit the specific needs of the application. + +Note: Asynchronous scheduling is the default scheduling mechanism for capacity scheduler. + + Features -------- From 8f477e15f43319e3e240e4d6f2f69e251c0a4b0e Mon Sep 17 00:00:00 2001 From: Syed Shameerur Rahman Date: Sun, 3 Nov 2024 20:37:55 +0530 Subject: [PATCH 2/3] Disable async scheduling for unit test --- .../TestWeightToPercentageConverter.java | 10 +- .../TestWeightToWeightConverter.java | 8 +- .../src/test/resources/capacity-scheduler.xml | 255 ++++++++++++++++++ .../src/site/markdown/CapacityScheduler.md | 11 + 4 files changed, 275 insertions(+), 9 deletions(-) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/resources/capacity-scheduler.xml 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/fair/converter/weightconversion/TestWeightToPercentageConverter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToPercentageConverter.java index 33b18734a0a20..f1f205dcab03f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToPercentageConverter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToPercentageConverter.java @@ -66,7 +66,7 @@ public void testNoChildQueueConversion() { FSQueue root = createFSQueues(); converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Converted items", 19, + assertEquals("Converted items", 20, csConfig.getPropsWithPrefix(PREFIX).size()); } @@ -76,7 +76,7 @@ public void testMultiWeightConversion() { converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Number of properties", 22, + assertEquals("Number of properties", 23, csConfig.getPropsWithPrefix(PREFIX).size()); // this is no fixing - it's the result of BigDecimal rounding assertEquals("root.a capacity", 16.667f, @@ -95,7 +95,7 @@ public void testMultiWeightConversionWhenOfThemIsZero() { assertFalse("Capacity zerosum allowed", csConfig.getAllowZeroCapacitySum(ROOT)); - assertEquals("Number of properties", 22, + assertEquals("Number of properties", 23, csConfig.getPropsWithPrefix(PREFIX).size()); assertEquals("root.a capacity", 0.000f, csConfig.getNonLabeledQueueCapacity(ROOT_A), 0.0f); @@ -111,7 +111,7 @@ public void testMultiWeightConversionWhenAllOfThemAreZero() { converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Number of properties", 23, + assertEquals("Number of properties", 24, csConfig.getPropsWithPrefix(PREFIX).size()); assertTrue("Capacity zerosum allowed", csConfig.getAllowZeroCapacitySum(ROOT)); @@ -129,7 +129,7 @@ public void testCapacityFixingWithThreeQueues() { converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Number of properties", 22, + assertEquals("Number of properties", 23, csConfig.getPropsWithPrefix(PREFIX).size()); assertEquals("root.a capacity", 33.334f, csConfig.getNonLabeledQueueCapacity(ROOT_A), 0.0f); 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/fair/converter/weightconversion/TestWeightToWeightConverter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToWeightConverter.java index 38b69c66a2926..8992553a86ad3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToWeightConverter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/weightconversion/TestWeightToWeightConverter.java @@ -54,7 +54,7 @@ public void testNoChildQueueConversion() { assertEquals("root weight", 1.0f, csConfig.getNonLabeledQueueWeight(ROOT), 0.0f); - assertEquals("Converted items", 21, + assertEquals("Converted items", 22, csConfig.getPropsWithPrefix(PREFIX).size()); } @@ -67,7 +67,7 @@ public void testSingleWeightConversion() { csConfig.getNonLabeledQueueWeight(ROOT), 0.0f); assertEquals("root.a weight", 1.0f, csConfig.getNonLabeledQueueWeight(ROOT_A), 0.0f); - assertEquals("Number of properties", 22, + assertEquals("Number of properties", 23, csConfig.getPropsWithPrefix(PREFIX).size()); } @@ -77,7 +77,7 @@ public void testMultiWeightConversion() { converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Number of properties", 24, + assertEquals("Number of properties", 25, csConfig.getPropsWithPrefix(PREFIX).size()); assertEquals("root weight", 1.0f, csConfig.getNonLabeledQueueWeight(ROOT), 0.0f); @@ -103,7 +103,7 @@ public void testAutoCreateV2FlagOnParentWithoutChildren() { FSQueue root = createParent(new ArrayList<>()); converter.convertWeightsForChildQueues(root, csConfig); - assertEquals("Number of properties", 21, + assertEquals("Number of properties", 22, csConfig.getPropsWithPrefix(PREFIX).size()); assertTrue("root autocreate v2 enabled", csConfig.isAutoQueueCreationV2Enabled(ROOT)); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/resources/capacity-scheduler.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/resources/capacity-scheduler.xml new file mode 100644 index 0000000000000..56ae5624c9eae --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/resources/capacity-scheduler.xml @@ -0,0 +1,255 @@ + + + + + yarn.scheduler.capacity.maximum-applications + 10000 + + Maximum number of applications that can be pending and running. + + + + + yarn.scheduler.capacity.maximum-am-resource-percent + 0.1 + + Maximum percent of resources in the cluster which can be used to run + application masters i.e. controls number of concurrent running + applications. + + + + + yarn.scheduler.capacity.resource-calculator + org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator + + The ResourceCalculator implementation to be used to compare + Resources in the scheduler. + The default i.e. DefaultResourceCalculator only uses Memory while + DominantResourceCalculator uses dominant-resource to compare + multi-dimensional resources such as Memory, CPU etc. + + + + + yarn.scheduler.capacity.root.queues + default + + The queues at the this level (root is the root queue). + + + + + yarn.scheduler.capacity.root.default.capacity + 100 + Default queue target capacity. + + + + yarn.scheduler.capacity.root.default.user-limit-factor + 1 + + Default queue user limit a percentage from 0.0 to 1.0. + + + + + yarn.scheduler.capacity.root.default.maximum-capacity + 100 + + The maximum capacity of the default queue. + + + + + yarn.scheduler.capacity.root.default.state + RUNNING + + The state of the default queue. State can be one of RUNNING or STOPPED. + + + + + yarn.scheduler.capacity.root.default.acl_submit_applications + * + + The ACL of who can submit jobs to the default queue. + + + + + yarn.scheduler.capacity.root.default.acl_administer_queue + * + + The ACL of who can administer jobs on the default queue. + + + + + yarn.scheduler.capacity.root.default.acl_application_max_priority + * + + The ACL of who can submit applications with configured priority. + For e.g, [user={name} group={name} max_priority={priority} default_priority={priority}] + + + + + yarn.scheduler.capacity.root.default.maximum-application-lifetime + + -1 + + Maximum lifetime of an application which is submitted to a queue + in seconds. Any value less than or equal to zero will be considered as + disabled. + This will be a hard time limit for all applications in this + queue. If positive value is configured then any application submitted + to this queue will be killed after exceeds the configured lifetime. + User can also specify lifetime per application basis in + application submission context. But user lifetime will be + overridden if it exceeds queue maximum lifetime. It is point-in-time + configuration. + Note : Configuring too low value will result in killing application + sooner. This feature is applicable only for leaf queue. + + + + + yarn.scheduler.capacity.root.default.default-application-lifetime + + -1 + + Default lifetime of an application which is submitted to a queue + in seconds. Any value less than or equal to zero will be considered as + disabled. + If the user has not submitted application with lifetime value then this + value will be taken. It is point-in-time configuration. + Note : Default lifetime can't exceed maximum lifetime. This feature is + applicable only for leaf queue. + + + + + yarn.scheduler.capacity.node-locality-delay + 40 + + Number of missed scheduling opportunities after which the CapacityScheduler + attempts to schedule rack-local containers. + When setting this parameter, the size of the cluster should be taken into account. + We use 40 as the default value, which is approximately the number of nodes in one rack. + Note, if this value is -1, the locality constraint in the container request + will be ignored, which disables the delay scheduling. + + + + + yarn.scheduler.capacity.rack-locality-additional-delay + -1 + + Number of additional missed scheduling opportunities over the node-locality-delay + ones, after which the CapacityScheduler attempts to schedule off-switch containers, + instead of rack-local ones. + Example: with node-locality-delay=40 and rack-locality-delay=20, the scheduler will + attempt rack-local assignments after 40 missed opportunities, and off-switch assignments + after 40+20=60 missed opportunities. + When setting this parameter, the size of the cluster should be taken into account. + We use -1 as the default value, which disables this feature. In this case, the number + of missed opportunities for assigning off-switch containers is calculated based on + the number of containers and unique locations specified in the resource request, + as well as the size of the cluster. + + + + + yarn.scheduler.capacity.queue-mappings + + + A list of mappings that will be used to assign jobs to queues + The syntax for this list is [u|g]:[name]:[queue_name][,next mapping]* + Typically this list will be used to map users to queues, + for example, u:%user:%user maps all users to queues with the same name + as the user. + + + + + yarn.scheduler.capacity.queue-mappings-override.enable + false + + If a queue mapping is present, will it override the value specified + by the user? This can be used by administrators to place jobs in queues + that are different than the one specified by the user. + The default is false. + + + + + yarn.scheduler.capacity.per-node-heartbeat.maximum-offswitch-assignments + 1 + + Controls the number of OFF_SWITCH assignments allowed + during a node's heartbeat. Increasing this value can improve + scheduling rate for OFF_SWITCH containers. Lower values reduce + "clumping" of applications on particular nodes. The default is 1. + Legal values are 1-MAX_INT. This config is refreshable. + + + + + + yarn.scheduler.capacity.application.fail-fast + false + + Whether RM should fail during recovery if previous applications' + queue is no longer valid. + + + + + yarn.scheduler.capacity.workflow-priority-mappings + + + A list of mappings that will be used to override application priority. + The syntax for this list is + [workflowId]:[full_queue_name]:[priority][,next mapping]* + where an application submitted (or mapped to) queue "full_queue_name" + and workflowId "workflowId" (as specified in application submission + context) will be given priority "priority". + + + + + yarn.scheduler.capacity.workflow-priority-mappings-override.enable + false + + If a priority mapping is present, will it override the value specified + by the user? This can be used by administrators to give applications a + priority that is different than the one specified by the user. + The default is false. + + + + + + + + yarn.scheduler.capacity.schedule-asynchronously.enable + false + + Whether to enable asynchronous scheduling. + + + + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index 0a4077d888df4..f1e604d09e0d0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -111,6 +111,17 @@ Configuration |:---- |:---- | | `yarn.resourcemanager.scheduler.class` | `org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler` | +###Setting up scheduling stratergy + + To configure different scheduling stratergy in capcity scheduler, set the following property in the **conf/capacity-scheduler.xml**: + + +| Property | Description | +|:-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `yarn.scheduler.capacity.schedule-asynchronously.enable` | Specifies whether to enable asynchronous scheduling. The default value is true. | +| `yarn.scheduler.capacity.multi-node-placement-enabled` | Specifies whether to enable global scheduling. The default value is false. In addition to this, node sorting policy needs to be set using `yarn.scheduler.capacity.multi-node-sorting.policy.names`. | + + ###Setting up queues `etc/hadoop/capacity-scheduler.xml` is the configuration file for the `CapacityScheduler`. From 0bb32d067009bdf93d651fb0b955258bc3fad646 Mon Sep 17 00:00:00 2001 From: Syed Shameerur Rahman Date: Mon, 4 Nov 2024 10:55:03 +0530 Subject: [PATCH 3/3] Fix unit test --- .../webapp/TestRMWebServicesCapacitySched.java | 1 + .../hadoop-yarn-site/src/site/markdown/CapacityScheduler.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java index 71465723a0109..f3968135fd224 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java @@ -167,6 +167,7 @@ private Configuration createConfig() { conf.set("yarn.scheduler.capacity.root.a.max-parallel-app", "42"); conf.set("yarn.scheduler.capacity.root.b.capacity", "50"); conf.set("yarn.scheduler.capacity.root.c.capacity", "37.5"); + conf.set("yarn.scheduler.capacity.schedule-asynchronously.enable", "false"); return conf; } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index f1e604d09e0d0..0e6caec069b3c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -111,9 +111,9 @@ Configuration |:---- |:---- | | `yarn.resourcemanager.scheduler.class` | `org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler` | -###Setting up scheduling stratergy +###Setting up scheduling strategy - To configure different scheduling stratergy in capcity scheduler, set the following property in the **conf/capacity-scheduler.xml**: + To configure different scheduling strategy in capacity scheduler, set the following property in the **conf/capacity-scheduler.xml**: | Property | Description |