《Hadoop权威指南:大数据的存储与分析》—4.3 YARN中的调度

举报
清华大学出版社 发表于 2019/10/12 17:24:41 2019/10/12
【摘要】 本节书摘来自清华大学出版社《Hadoop权威指南:大数据的存储与分析》一书中第四章,第4.3.1节,作者是Tom White , 王 海 华 东 刘 喻 吕粤海 译。

4.3  YARN中的调度

理想情况下,YARN应用发出的资源请求应该立刻给予满足。然而现实中资源是有限的,在一个繁忙的集群上,一个应用经常需要等待才能得到所需的资源。YARN调度器的工作就是根据既定策略为应用分配资源。调度通常是一个难题,并且没有一个所谓“最好”的策略,这也是为什么YARN提供了多种调度器和可配置策略供我们选择的原因。接下来我们将探讨这个问题。

4.3.1  调度选项

YARN中有三种调度器可用:FIFO调度器(FIFO Scheduler),容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)FIFO调度器将应用放置在一个队列中,然后按照提交的顺序(先进先出)运行应用。首先为队列中第一个应用的请求分配资源,第一个应用的请求被满足后再依次为队列中下一个应用服务。

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

4-3描述了调度器之间的差异性,由图中可以看出,当使用FIFO调度器(i)时,小作业一直被阻塞,直至大作业完成。

使用容量调度器时(4-3中的ii),一个独立的专门队列保证小作业一提交就可以启动,由于队列容量是为那个队列中的作业所保留的,因此这种策略是以整个集群的利用率为代价的。这意味着与使用FIFO调度器相比,大作业执行的时间要长。

image.png

4-3. FIFO调度器(i)、容量调度器(ii)和公平调度器(iii)运行大小作业时集群的利用


使用公平调度器时(4-3中的iii),不需要预留一定量的资源,因为调度器会在所有运行的作业之间动态平衡资源。第一个()作业启动时,它也是唯一运行的作业,因而获得集群中所有的资源。当第二个()作业启动时,它被分配到集群的一半资源,这样每个作业都能公平共享资源。

注意,从第二个作业的启动到获得公平共享资源之间会有时间滞后,因为它必须等待第一个作业使用的容器用完并释放出资源。当小作业结束且不再申请资源后,大作业将回去再次使用全部的集群资源。最终的效果是:既得到了较高的集群利用率,又能保证小作业能及时完成。

4-3对比了三种调度器的基本操作。在接下来的两个小节中,我们将讨论容量调度器和公平调度器的高级配置选项。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。