Hadoop 系列YARN:资源调度平台(YARN的调度器)

YARN:资源调度平台

 YARN的调度器

能够这样理解,Hadoop至关于一台虚拟计算机(由多台计算机构造的集群),那么HDFS就是这台虚拟计算机的文件系统,管理磁盘资源;而YARN负责管理虚拟计算机的CPU和内存资源。在YARN上跑的MapReduce程序(上一节跑的PI和wordcount两个应用程序)就是在这台虚拟计算机跑的应用程序,须要磁盘、内存和CPU等资源。

因此,咱们能够这样认为:HDFS+YARN=Cluster OS(集群操做系统)

Yarn的资源调度目前支持内存和CPU两种资源。Yarn支持三种调度方式:FIFO、FAIR和DRF分别是指先来先服务、公平调度和主资源公平调度。

web

FIFO调度器

FIFO(First in first out):先按照优先级高低调度,若是优先级相同,则按照提交时间前后顺序调度,若是提交时间相同,则按照(队列或者应用程序)名称大小(字符串比较)调度;不支持有子队列的状况。
在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求知足后再给下一个分配,以此类推。
FIFO Scheduler是最简单也是最容易理解的调度器,也不须要任何配置,但它并不适用于共享集群。
算法

从图中能够看出,在FIFO 调度器中,小任务会被大任务阻塞。大的应用可能会占用全部集群资源,这就致使其它应用被阻塞。在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,这两个调度器都容许大任务和小任务在提交的同时得到必定的系统资源。

单队列组织方式:FIFO Scheduler
将全部的应用程序放到一个队列中。
局限性明显:资源利用率低,没法交叉运行做业。不够灵活,好比紧急的做业没法插队。oop

Fair调度器spa

FAIR:按照内存资源使用量比率调度,即按照used_memory/minShare大小调度(核心思想是按照该调度算法决定调度顺序,但还需考虑一些边界状况);

在Fair调度器中,咱们不须要预先占用必定的系统资源,Fair调度器会为全部运行的job动态的调整系统资源。以下图所示,当第一个大job提交时,只有这一个job在运行,此时它得到了全部集群资源;当第二个小任务提交后,Fair调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。

须要注意的是,在下图Fair调度器中,从第二个任务提交到得到资源会有必定的延迟,由于它须要等待第一个任务释放占用的Container。小任务执行完成以后也会释放本身占用的资源,大任务又得到了所有的系统资源。最终的效果就是Fair调度器即获得了高的资源利用率又能保证小任务及时完成。
操作系统

注意,CDH默认使用的是公平调度器。3d

5.5.3 Capacity调度器

对于Capacity调度器,有一个专门的队列用来运行小任务,可是为小任务专门设置一个队列会预先占用必定的集群资源,这就致使大任务的执行时间会落后于使用FIFO调度器时的时间。blog

Apache Hadoop Yarn默认使用Capacity调度器,能够直接经过YARN 的web页面查看当前启用的调度器。队列

相关文章
相关标签/搜索