YARN-4826. Document configuration of ReservationSystem for CapacityScheduler. 
(Subru Krishnan via wangda)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fcb3fcd4
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fcb3fcd4
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fcb3fcd4

Branch: refs/heads/HDFS-1312
Commit: fcb3fcd4c674d58e5f40b17eff7048e8ae45d151
Parents: ec06957
Author: Wangda Tan <wan...@apache.org>
Authored: Fri Apr 8 16:21:04 2016 -0700
Committer: Wangda Tan <wan...@apache.org>
Committed: Fri Apr 8 16:21:04 2016 -0700

----------------------------------------------------------------------
 .../src/site/markdown/CapacityScheduler.md      | 28 ++++++++++++++++++++
 1 file changed, 28 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/fcb3fcd4/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md
----------------------------------------------------------------------
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 8c0b8c8..007842a 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
@@ -24,6 +24,7 @@ Hadoop: Capacity Scheduler
     * [Queue Properties](#Queue_Properties)
     * [Setup for application priority](#Setup_for_application_priority.)
     * [Capacity Scheduler container 
preemption](#Capacity_Scheduler_container_preemption)
+    * [Configuring `ReservationSystem` with 
`CapacityScheduler`](#Configuring_ReservationSystem_with_CapacityScheduler)
     * [Other Properties](#Other_Properties)
     * [Reviewing the configuration of the 
CapacityScheduler](#Reviewing_the_configuration_of_the_CapacityScheduler)
 * [Changing Queue Configuration](#Changing_Queue_Configuration)
@@ -241,6 +242,33 @@ The following configuration parameters can be configured 
in yarn-site.xml to con
 | `yarn.scheduler.capacity.root.<queue>.acl_list_reservations` | The ACL which 
controls who can *list* reservations to the given queue. If the given 
user/group has necessary ACLs on the given queue they can list all 
applications. ACLs for this property *are not* inherited from the parent queue 
if not specified. |
 | `yarn.scheduler.capacity.root.<queue>.acl_submit_reservations` | The ACL 
which controls who can *submit* reservations to the given queue. If the given 
user/group has necessary ACLs on the given queue they can submit reservations. 
ACLs for this property *are not* inherited from the parent queue if not 
specified. |
 
+### Configuring `ReservationSystem` with `CapacityScheduler`
+
+ The `CapacityScheduler` supports the **ReservationSystem** which allows users 
to reserve resources ahead of time. The application can request the reserved 
resources at runtime by specifying the `reservationId` during submission. The 
following configuration parameters can be configured in yarn-site.xml for 
`ReservationSystem`.
+
+| Property | Description |
+|:---- |:---- |
+| `yarn.resourcemanager.reservation-system.enable` | *Mandatory* parameter: to 
enable the `ReservationSystem` in the **ResourceManager**. Boolean value 
expected. The default value is *false*, i.e. `ReservationSystem` is not enabled 
by default. |
+| `yarn.resourcemanager.reservation-system.class` | *Optional* parameter: the 
class name of the `ReservationSystem`. The default value is picked based on the 
configured Scheduler, i.e. if `CapacityScheduler` is configured, then it is 
`CapacityReservationSystem`. |
+| `yarn.resourcemanager.reservation-system.plan.follower` | *Optional* 
parameter: the class name of the `PlanFollower` that runs on a timer, and 
synchronizes the `CapacityScheduler` with the `Plan` and viceversa. The default 
value is picked based on the configured Scheduler, i.e. if `CapacityScheduler` 
is configured, then it is `CapacitySchedulerPlanFollower`. |
+| `yarn.resourcemanager.reservation-system.planfollower.time-step` | 
*Optional* parameter: the frequency in milliseconds of the `PlanFollower` 
timer. Long value expected. The default value is *1000*. |
+
+
+The `ReservationSystem` is integrated with the `CapacityScheduler` queue 
hierachy and can be configured for any **LeafQueue** currently. The 
`CapacityScheduler` supports the following parameters to tune the 
`ReservationSystem`:
+
+| Property | Description |
+|:---- |:---- |
+| `yarn.scheduler.capacity.<queue-path>.reservable` | *Mandatory* parameter: 
indicates to the `ReservationSystem` that the queue's resources is available 
for users to reserve. Boolean value expected. The default value is *false*, 
i.e. reservations are not enabled in *LeafQueues* by default. |
+| `yarn.scheduler.capacity.<queue-path>.reservation-agent` | *Optional* 
parameter: the class name that will be used to determine the implementation of 
the `ReservationAgent`  which will attempt to place the user's reservation 
request in the `Plan`. The default value is 
*org.apache.hadoop.yarn.server.resourcemanager.reservation.planning.AlignedPlannerWithGreedy*.
 |
+| `yarn.scheduler.capacity.<queue-path>.reservation-move-on-expiry` | 
*Optional* parameter to specify to the `ReservationSystem` whether the 
applications should be moved or killed to the parent reservable queue 
(configured above) when the associated reservation expires. Boolean value 
expected. The default value is *true* indicating that the application will be 
moved to the reservable queue. |
+| `yarn.scheduler.capacity.<queue-path>.show-reservations-as-queues` | 
*Optional* parameter to show or hide the reservation queues in the Scheduler 
UI. Boolean value expected. The default value is *false*, i.e. reservation 
queues will be hidden. |
+| `yarn.scheduler.capacity.<queue-path>.reservation-policy` | *Optional* 
parameter: the class name that will be used to determine the implementation of 
the `SharingPolicy`  which will validate if the new reservation doesn't violate 
any invariants.. The default value is 
*org.apache.hadoop.yarn.server.resourcemanager.reservation.CapacityOverTimePolicy*.
 |
+| `yarn.scheduler.capacity.<queue-path>.reservation-window` | *Optional* 
parameter representing the time in milliseconds for which the `SharingPolicy` 
will validate if the constraints in the Plan are satisfied. Long value 
expected. The default value is one day. |
+| `yarn.scheduler.capacity.<queue-path>.instantaneous-max-capacity` | 
*Optional* parameter: maximum capacity at any time in percentage (%) as a float 
that the `SharingPolicy` allows a single user to reserve. The default value is 
1, i.e. 100%. |
+| `yarn.scheduler.capacity.<queue-path>.average-capacity` | *Optional* 
parameter: the average allowed capacity which will aggregated over the 
*ReservationWindow* in percentage (%) as a float that the `SharingPolicy` 
allows a single user to reserve. The default value is 1, i.e. 100%. |
+| `yarn.scheduler.capacity.<queue-path>.reservation-planner` | *Optional* 
parameter: the class name that will be used to determine the implementation of 
the *Planner*  which will be invoked if the `Plan` capacity fall below (due to 
scheduled maintenance or node failuers) the user reserved resources. The 
default value is 
*org.apache.hadoop.yarn.server.resourcemanager.reservation.planning.SimpleCapacityReplanner*
 which scans the `Plan` and greedily removes reservations in reversed order of 
acceptance (LIFO) till the reserved resources are within the `Plan` capacity |
+| `yarn.scheduler.capacity.<queue-path>.reservation-enforcement-window` | 
*Optional* parameter representing the time in milliseconds for which the 
`Planner` will validate if the constraints in the Plan are satisfied. Long 
value expected. The default value is one hour. |
+
 ###Other Properties
 
   * Resource Calculator

Reply via email to