Yarn调度器和调度算法

目前,Hadoop 作业调度器主要有三种:
  • FIFO
  • 容量调度器(Capacity Scheduler, Apache Hadoop2.7.2 默认的资源调度器)
  • 公平调度器(Fair Scheduler, CDH框架默认的资源调度器)

默认调度器可见配置文件

// Apache hadoop3.1.3 yarn=default.xml文件
// http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
<property>
    <description>The class to use as the resource scheduler.</description>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

 

 一、FIFO

如果只有三个task的资源,会先给job1的一部分map task,剩余的map task继续等。

 

二、容量调度器(Capacity Scheduler)

Capacity Scheduler 是 Yahoo 开发的多用户调度器。

1、多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略。

2、容量保证:管理员可为每个队列设置资源最低保证和资源使用上限。

3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。

4、多租户(ss、cls):

    支持多用户共享集群和多应用程序同时运行。

    为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。

 

三、公平调度器(Fair Scheduler)

Fair Schedulere 是 Facebook 开发的多用户调度器。

1)与容量调度器相同点
  (1)多队列:支持多队列多作业
  (2)容量保证:管理员可为每个队列设置资源最低保证和资源使用上线
  (3)灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。
  (4)多租户:支持多用户共享集群和多应用程序同时运行;为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。
2)与容量调度器不同点
  (1)核心调度策略不同
      容量调度器:优先选择资源利用率低的队列
      公平调度器:优先选择对资源的缺额比例大的
  (2)每个队列可以单独设置资源分配方式
      容量调度器:FIFO、 DRF
      公平调度器:FIFO、FAIR、DRF

 

 

 

 

 

 

 

posted @ 2021-04-05 22:34  maider  阅读(1031)  评论(0编辑  收藏  举报