Return-Path: X-Original-To: apmail-hadoop-yarn-commits-archive@minotaur.apache.org Delivered-To: apmail-hadoop-yarn-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 636B310EE8 for ; Wed, 12 Jun 2013 19:25:15 +0000 (UTC) Received: (qmail 77846 invoked by uid 500); 12 Jun 2013 19:25:15 -0000 Delivered-To: apmail-hadoop-yarn-commits-archive@hadoop.apache.org Received: (qmail 77824 invoked by uid 500); 12 Jun 2013 19:25:15 -0000 Mailing-List: contact yarn-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: yarn-commits@hadoop.apache.org Delivered-To: mailing list yarn-commits@hadoop.apache.org Received: (qmail 77816 invoked by uid 99); 12 Jun 2013 19:25:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Jun 2013 19:25:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Jun 2013 19:25:13 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 89EDE23888E4; Wed, 12 Jun 2013 19:24:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1492389 - in /hadoop/common/branches/branch-2/hadoop-yarn-project: CHANGES.txt hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm Date: Wed, 12 Jun 2013 19:24:54 -0000 To: yarn-commits@hadoop.apache.org From: tucu@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130612192454.89EDE23888E4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tucu Date: Wed Jun 12 19:24:54 2013 New Revision: 1492389 URL: http://svn.apache.org/r1492389 Log: YARN-648. FS: Add documentation for pluggable policy. (kkambatl via tucu) Modified: hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm Modified: hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt?rev=1492389&r1=1492388&r2=1492389&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-yarn-project/CHANGES.txt Wed Jun 12 19:24:54 2013 @@ -298,6 +298,8 @@ Release 2.1.0-beta - UNRELEASED YARN-600. Hook up cgroups CPU settings to the number of virtual cores allocated. (sandyr via tucu) + YARN-648. FS: Add documentation for pluggable policy. (kkambatl via tucu) + OPTIMIZATIONS YARN-512. Log aggregation root directory check is more expensive than it Modified: hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm?rev=1492389&r1=1492388&r2=1492389&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm (original) +++ hadoop/common/branches/branch-2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/FairScheduler.apt.vm Wed Jun 12 19:24:54 2013 @@ -45,31 +45,16 @@ Hadoop MapReduce Next Generation - Fair work with app priorities - the priorities are used as weights to determine the fraction of total resources that each app should get. - The scheduler organizes apps further into "queues", and shares resources - fairly between these queues. By default, all users share a single queue, - called “default”. If an app specifically lists a queue in a container - resource request, the request is submitted to that queue. It is also - possible to assign queues based on the user name included with the request - through configuration. Within each queue, a scheduling policy is used to share + The scheduler organizes apps further into "queues", and shares resources + fairly between these queues. By default, all users share a single queue, + called “default”. If an app specifically lists a queue in a container resource + request, the request is submitted to that queue. It is also possible to assign + queues based on the user name included with the request through + configuration. Within each queue, a scheduling policy is used to share resources between the running apps. The default is memory-based fair sharing, but FIFO and multi-resource with Dominant Resource Fairness can also be - configured. Queues can be configured with weights to share the cluster non-evenly. - - The fair scheduler supports hierarchical queues. All queues descend from a - queue named "root". Available resources are distributed among the children - of the root queue in the typical fair scheduling fashion. Then, the children - distribute the resources assigned to them to their children in the same - fashion. Applications may only be scheduled on leaf queues. Queues can be - specified as children of other queues by placing them as sub-elements of - their parents in the fair scheduler configuration file. - - A queue's name starts with the names of its parents, with periods as - separators. So a queue named "queue1" under the root named, would be - referred to as "root.queue1", and a queue named "queue2" under a queue - named "parent1" would be referred to as "root.parent1.queue2". When - referring to queues, the root part of the name is optional, so queue1 could - be referred to as just "queue1", and a queue2 could be referred to as just - "parent1.queue2". + configured. Queues can be arranged in a hierarchy to divide resources and + configured with weights to share the cluster in specific proportions. In addition to providing fair sharing, the Fair Scheduler allows assigning guaranteed minimum shares to queues, which is useful for ensuring that @@ -87,9 +72,31 @@ Hadoop MapReduce Next Generation - Fair cause too much intermediate data to be created or too much context-switching. Limiting the apps does not cause any subsequently submitted apps to fail, only to wait in the scheduler's queue until some of the user's earlier apps - finish. Apps to run from each user/queue are chosen in the same fair sharing - manner, but can alternatively be configured to be chosen in order of submit - time, as in the default FIFO scheduler in Hadoop. + finish. + +* {Hierarchical queues with pluggable policies} + + The fair scheduler supports hierarchical queues. All queues descend from a + queue named "root". Available resources are distributed among the children + of the root queue in the typical fair scheduling fashion. Then, the children + distribute the resources assigned to them to their children in the same + fashion. Applications may only be scheduled on leaf queues. Queues can be + specified as children of other queues by placing them as sub-elements of + their parents in the fair scheduler configuration file. + + A queue's name starts with the names of its parents, with periods as + separators. So a queue named "queue1" under the root named, would be referred + to as "root.queue1", and a queue named "queue2" under a queue named "parent1" + would be referred to as "root.parent1.queue2". When referring to queues, the + root part of the name is optional, so queue1 could be referred to as just + "queue1", and a queue2 could be referred to as just "parent1.queue2". + + Additionally, the fair scheduler allows setting a different custom policy for + each queue to allow sharing the queue's resources in any which way the user + wants. A custom policy can be built by extending + <<>>. + FifoPolicy, FairSharePolicy (default), and DominantResourceFairnessPolicy are + built-in and can be readily used. Certain add-ons are not yet supported which existed in the original (MR1) Fair Scheduler. Among them, is the use of a custom policies governing @@ -201,11 +208,12 @@ Allocation file format default to 1, and a queue with weight 2 should receive approximately twice as many resources as a queue with the default weight. - * schedulingMode: either "fifo" or "fair" depending on the in-queue scheduling - policy desired. Defaults to "fair". If "fifo", apps with earlier submit - times are given preference for containers, but apps submitted later may - run concurrently if there is leftover space on the cluster after satisfying - the earlier app's requests. + * schedulingPolicy: to set the scheduling policy of any queue. The allowed + values are "fifo"/"fair"/"drf" or any class that extends + <<>>. + Defaults to "fair". If "fifo", apps with earlier submit times are given preference + for containers, but apps submitted later may run concurrently if there is + leftover space on the cluster after satisfying the earlier app's requests. * aclSubmitApps: a list of users that can submit apps to the queue. A (default) value of "*" means that any users can submit apps. A queue inherits the ACL of @@ -236,7 +244,7 @@ Allocation file format 90000 mb 50 2.0 - fair + fair 5000 mb