YARN资源调度策略
YARN 资源调度器是直接从MR基础上修改而来,它提供了三种可用资源调度器 :FIFO Scheduler ,Capacity Scheduler,Fair Scheduler。
一、调度原理
1.1 FIFO Scheduler
FIFO是Hadoop设计之初提供的一个最简单的调度机制: 即先来先服务。是最简单、也是默认的调度器。只有一个队列,所有用户共享。资源分配的过程也非常简单,先到先得,所以很容易出现一个用户占满集群所有资源的情况。可以设置ACL,但不能设置各个用户的优先级。
优点:
实现简单,无需做过多的配置。
缺点:
-
只能对所有的任务按照同一优先级处理。
-
先来的程序可能会把集群资源占满,这将导致其他用户的程序无法及时执行。
-
程序并发运行度低。
1.2 Capacity Scheduler
Capacity Scheduler容量调度器在FIFO的基础上,增加多用户支持,对资源进行划分。每个队列可设定一定比例的资源上下限。每个用户也可设置一定的资源使用上限。列队空闲时,也支持将空闲资源与其他队列共享。也就是说,集群不忙时,和FIFO差不多。这种设计是为了提高整个集群的利用率,避免集群有资源但不能提交任务的情况。
特点:
-
资源保证:每个队列都可以设置最低资源获取保证,以及对用户的资源使用上限设置。