YARN调度原则

版权声明:文章所有权归博主,转载转发请备注原作者 https://blog.csdn.net/qq_40825218/article/details/84313093

YARN调度原则

调度选项

  • YARN有三种调度器可用:FIFO调度器(FIFO Scheduler),容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)

FIFO调度器:

  • 将应用放置在一个队列中,然后按照提交的顺序(先进先出)进行应用。首先为队列中的第一个应用的请求分配资源,第一个应用的请求被满足后依次为队列中的下一个应用服务

容量调度器

  • 容量调度器允许多个组织共享一个Hadoop集群,每个组织可以分配到全部集群资源的一部分,每个组织被配置一个专门的队列,每个队列被配置为可以使用一定的集群资源。队列可以进一步按层次划分,这样每个组织内的不同用户能够共享该组织队列所分配的资源。在一个队列内,使用FIFO调度策略对应用进行调度。

公平资源调度器

  • 公平资源调度器在为所有运行的应用公平分配资源;
    • 想象两个用户A和B,分别拥有自己的队列Q1,Q2
    1. A先启动一个job J1,则J1占用集群所有资源
    2. B启动一个job J2,则Q1中的J1需要分一半资源给Q2中的J2
    3. B又启动一个job J3,则Q2中的J2需要分一半资源给Q2中的J3资源
    • 因此用户B的每个作业将占用四分之一的集群资源,用户A占用一半的集群资源;结果便是,资源在用户间实现了公平共享

三种调度器的基本操作比较

  • FIFO调度器的优点是,简单易懂,不需要任何配置,但是不适合共享集群。大的应用会占用集群中的所有资源,所以每个应用都必须等待知道轮到自己运行。在一个共享集群中,更适合使用容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)。这两种调度器都允许长时间运行的作业能及时完成,同时也允许正在运行较小临时查询的用户能够在合理时间内得到返回结果。

调度器之间的差异图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 从图中可以看出:
	1.当使用FIFO调度器时,小作业一直被阻塞,直至大作业完成。
	
	2.使用容量调度器时,有一个独立队列保证小作业一提交就可以启动;但由于此队列容量是为该小作业保留的,因此这种策略是以整个集群的利用率为代价的,与FIFO调度器相比,大作业的执行时间更长

	3.使用公平调度器时,不需要预留一定量的资源,因为调度器会在所有运行的作业之间动态平衡资源;从第二个作业的启动到公平共享资源之间会有时间滞后,因为必须等待第一个作业使用的容量用完并释放出资源。当小作业结束后不再申请资源后,大作业将回去再次使用全部的资源;最后效果:即得到了较高集群使用率,又保证小作业能及时完成	

猜你喜欢

转载自blog.csdn.net/qq_40825218/article/details/84313093