【Yarn】资源调度器

资源调度器是什么?

Yarn中负责集群资源分配的是Scheduler。

分成三种类型:FIFO Scheduler,Capacity Scheduler,Fair Scheduler。

FIFO Scheduler:先进先出队列,任务先提交就会被先执行,优先满足最先被提交的任务,之后若有空余资源再分配给后续的任务。缺点是一个任务将集群资源耗尽,其他任务就只能等待资源被释放后才能继续执行,否则一直被阻塞。即小任务会被大任务阻塞

Capacity Scheduler。Hadoop2.7.2默认的资源调度器。支持多个队列,每个队列是FIFO调度。

例如集群的资源被分到了A,B两个队列中,

A队列占用60%的资源,B队列占用40%的资源。

root
------a[60%]
      |---a.bi[40%]
      |---a.realtime[60%]
------b[40%]

当用户向a提交了一个任务,此任务可以占用100%的集群资源(集群中仅此一个任务,没有其他任务),当向b队列提交了任务后,队列a会慢慢地释放占用的资源,达到的平衡状态是队列a使用60%的资源运行一个任务,队列b使用40%的资源运行一个任务。

特点:

  1. 层次化设计:子队列可以使用父队列的资源,这样可以合理分配、限制资源。
  2. 容量设计:每个队列/任务都不会用尽集群资源,有任务资源阈值

 

 

 

 

 

 

 

 

 

 

Fair Scheduler,支持多队列、多用户,一个队列的所有job都会得到执行,按照资源差额(队列中已有的资源与任务需要的资源)来评定任务执行的优先级。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章