学习 YARN(五):调度器

更新至 Hadoop 2.9.2 版本

YARN 提供了两个主要的调度器实现:

  • Capacity Scheduler 根据集群资源的百分比分配资源;
  • Fair Scheduler 根据集群资源的内存和处理器分配资源。

Capacity Scheduler

Capacity Scheduler 由 Yahoo 贡献给 Hadoop 社区。Capacity Scheduler 在共享的多租户的集群中保证每个租户资源。
使用 Capacity Scheduler 调度器,编辑 yarn-site.xml 文件:

  
    yarn.resourcemanager.scheduler.class
    org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

Capacity Scheduler 使用队列作为资源调度的抽象。根队列为 root。
以创建 adhoc、batch、stream 子队列为例:

+----------+
                |          |
                |  default |
                +----+-----+
                     |
      +-----------------------------+
      |              |              |
      |              |              |
+-----v-----+  +-----v-----+  +-----v-----+
|           |  |           |  |           |
| adhoc 30% |  | batch 50% |  | stream 20%|
+-----------+  +-----------+  +-----------+

编辑 capacity-scheduler.xml 文件:

  
    yarn.scheduler.capacity.root.queues
    default


  
    yarn.scheduler.capacity.root.default.queues
    adhoc,batch,stream


  
    yarn.scheduler.capacity.root.default.capacity
    100


  
    yarn.scheduler.capacity.root.default.adhoc.capacity
    30


  
    yarn.scheduler.capacity.root.default.batch.capacity
    50


  
    yarn.scheduler.capacity.root.default.stream.capacity
    20

Fair Scheduler

TODO

参考