You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Wangda Tan (JIRA)" <ji...@apache.org> on 2016/06/02 22:44:59 UTC

[jira] [Updated] (YARN-5139) [Umbrella] Move YARN scheduler towards global scheduler

     [ https://issues.apache.org/jira/browse/YARN-5139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Wangda Tan updated YARN-5139:
-----------------------------
    Attachment: wip-2.YARN-5139.patch

An update of WIP patch (wip-2):

- Added implementation of scorer/scorer-factory supports caching (See package: org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.scorer)
- Added an example scorer (LocalityNodesScorer) to schedule containers to node with best locality
- Added a knob (yarn.scheduler.capacity.global-scheduling-enabled) to enable/disable global scheduling in CapacityScheduler
- Refactored implementation of RegularContainerAllocator to avoid duplicated check when doing global-scheduling. 
- Fixed compilation issues, now the wip-2 patch can apply and compiled on top of latest trunk.

For next patch, I will focus
- Code cleanups, remove hacks, do necessary refactoring to keep clean code base, etc.
- Basic performance test to make sure no significant regression to performance.
- Tests to demostrate global scheduling can make better scheduling decisions. 

Please share your thoughts about the patch when you get chance. [~kasha], [~asuresh], [~rohithsharma].

Thanks.

> [Umbrella] Move YARN scheduler towards global scheduler
> -------------------------------------------------------
>
>                 Key: YARN-5139
>                 URL: https://issues.apache.org/jira/browse/YARN-5139
>             Project: Hadoop YARN
>          Issue Type: New Feature
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>         Attachments: wip-1.YARN-5139.patch, wip-2.YARN-5139.patch
>
>
> Existing YARN scheduler is based on node heartbeat. This can lead to sub-optimal decisions because scheduler can only look at one node at the time when scheduling resources.
> Pseudo code of existing scheduling logic looks like:
> {code}
> for node in allNodes:
>    Go to parentQueue
>       Go to leafQueue
>         for application in leafQueue.applications:
>            for resource-request in application.resource-requests
>               try to schedule on node
> {code}
> Considering future complex resource placement requirements, such as node constraints (give me "a && b || c") or anti-affinity (do not allocate HBase regionsevers and Storm workers on the same host), we may need to consider moving YARN scheduler towards global scheduling.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org