在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Yarn作为一个资源管理、任务调度的框架,其重要性不言而喻。尤其是在近些年的大数据面试中,更是面试题的重点知识之一。为了大家在面试的时候,能够准备的更加充分,小编整理了一份有关分布式资源调度框架Yarn的大数据面试题,内容包括Yarn的架构、工作流程、调度器Scheduler。
1、Yarn的架构
Yarn是一个资源管理、任务调度的框架, 主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、
ApplicationMaster(AM)。
(1)ResourceManager 负责所有资源的监控、分配和管理;
(2)ApplicationMaster 负责每一个具体应用程序的调度和协调;
(3)NodeManager 负责每一个节点的维护。对于所有的 applications,RM 拥有绝对的控制权和对资源的分配权。而每个 AM 则会和 RM 协商资源,同时和NodeManager 通信来执行和监控 task。
2、Yarn的工作流程
(1)client 向 RM 提交应用程序,其中包括启动该应用的 ApplicationMaster 的必须信息,例如 ApplicationMaster 程序、启动 ApplicationMaster 的命令、用户程序等。
(2)ResourceManager 启动一个 container 用于运行 ApplicationMaster。启动中的 ApplicationMaster 向 ResourceManager 注册自己,启动成功后与 RM 保持心跳。
(3)ApplicationMaster 向 ResourceManager 发送请求, 申请相应数目的container。
(4)ResourceManager 返回 ApplicationMaster 的申请的 containers 信息。申请成功的container,由 ApplicationMaster 进行初始化。container 的启动信息初始化后,AM与对应的 NodeManager 通信,要求 NM 启动 container。AM 与 NM 保持心跳,从而对 NM 上运行的任务进行监控和管理。
(5)container 运行期间,ApplicationMaster 对 container 进行监控。container 通过 RPC协议向对应的 AM 汇报自己的进度和状态等信息。
(6)应用运行期间,client 直接与 AM 通信获取应用的状态、进度更新等信息。
(7)应用运行结束后,ApplicationMaster 向 ResourceManager 注销自己,并允许属于它的 container 被收回。
3、Yarn的调度器Scheduler。
Yarn 中,负责给应用分配资源的就是 Scheduler,三种调度器可以选择: FIFO Scheduler ,Capacity Scheduler,FairScheduler 。
(1)FIFO Scheduler
FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个 先进先出队列, 在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。
(2)Capacity Scheduler
Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。
(3)Fair Scheduler
在 Fair 调度器中,我们不需要预先占用一定的系统资源,Fair 调度器会为所有运行的 job 动态的调整系统资源。如下图所示,当第一个大 job 提交时, 只有这一个 job 在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair 调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。
以上就是关于分布式资源调度框架Yarn的大数据面试题。上面整理的都是重点知识,大家都梳理一遍了吗?还有任何疑问的同学,可以上博学谷咨询线上的老师哦。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据工程师面试时需要注意的那些致命判断题
大数据工程师属于IT行业里面的高薪岗位,所以企业在招聘的时候不仅仅要考虑他们的专业技能,还要考察大数据工程师对于问题的判断能力,从而保障项目的高效率执行。所以和大家分享一些大数据工程师面试时需要注意的那些致命判断题。
8062
2019-06-27 18:23:44
大数据Hbase面试宝典(上)
经历了水深火热的大数据学习,终于拨开云雾见天明了,同学们离成功就差了一步,那就是拿到大数据工程师的Offer。本文详细为同学们整理了一份大数据Hbase面试宝典。
8365
2019-07-03 19:05:17
大数据工程师常见面试题 编程模型
在大数据工程师的面试过程中,编程模型的相关问题常常是绕不过去的一个考点。同时编程模型也是大数据工程师工作中非常重要的知识技能。下面就来讲讲Spout、Bolt、并行度、消息不丢失这几方面的内容,感兴趣的小伙伴就赶紧接着看下去吧!
5909
2019-10-14 18:46:44
大数据岗位Spark面试题整理附答案
众所周知,Spark作为一个集群计算平台和内存计算系统,它是专门为速度和通用目标设计的。从事大数据岗位的工作者,像是ETL工程师、Spark工程师、Hbase工程师、用户画像系统工程师都需要熟练掌握Spark相关知识点,因此Spark也是常常会出现的必考面试题。下面我整理了一些Spark面试题,并附上了答案,一起来看看做一做吧!
8665
2020-04-01 17:52:24
Spark与Hadoop大数据计算框架区别是什么?
ApacheSpark专为大规模数据处理而设计的快速通用的计算引擎,而Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop和Spark都是大数据框架,但各自存在的目的不同。
4526
2021-04-12 10:07:37