Yarn面试题

1.Yarn任务提交过程

1.Client向rm提交程序,申请运行时需要的资源

2.ResourceManager收到请求之后,调用ApplicationManager向NodeManager发送请求,申请一个资源(Container),并且要求Container启动ApplicationMaster.

3.ApplicationMaster启动之后,首先注册自己到ResourceManager,然后为自己的Task申请Container,ResourceManager收到请求之后,会要求NodeManager分配资源

4.资源分配完毕之后,Application Master发送请求到NodeManager,启动任务。

5.NodeManager设置Container的运行时环境(jar包,环境变量,任务启动脚本),NodeManager会通过脚本启动任务

6.任务启动之后,在任务进行过程中,主要包括两类交互,第一,task和Application Master的交互,task会向AM汇报任务状态和进度信息,比如任务启动,停止,状态更新。Applicaiton Master利用这些信息监控task整个执行过程。第二,是NodeManager和ResourceManager的交互,这个过程和任务没有关系,主要是两者之间保持的心跳信息(状态的变化等等)

7.Application Master在检测到作业运行完毕之后,Application Master想Resource Manager 删除自己,并且停止自己执行。

2.container启动

Container启动过程主要经历三个阶段:资源本地化、启动并运行container、资源回收。其中,资源本地化指创建container工作目录,从HDFS下载运行container所需的各种资源(jar包、可执行文件等)等,而资源回收则是资源本地化的逆过程,它负责清理各种资源,它们均由ResourceLocalizationService服务完成的

3. Yarn中各个组件的作用?

ResourceManager:资源管理器,主要负责资源管理和调度,ResourceManager主要由两个组件构成:ApplicationManager,主要负责启动Applicaiton Master,监控Applicaiton Master运行状态。Scheduler,主要负责分配Container给Applicaiton Master,分配算法有多种(如公平调度等等)。

NodeManager:节点管理器,主要负责维护本节点的资源情况和任务管理。首先,NodeManager需要定期向ResourceManager汇报本节点资源使用情况,其次,需要管理Applicaiton Master提交来的task。

ApplicaitonMaster:用户提交的每个program都会对应一个ApplicationMaster,主要负责监控应用,任务容错(重启失败的task)等。它同时会和ResourceManager和NodeManager有交互,向ResourceManager申请资源,请求NodeManager启动或提示task

Container:容器是资源调度的单位,它是内存、cpu、磁盘、和IO的集合。Application Master会给task分配Container,task只能只用分配给它的Container的资源。分配流程为Resource Manager ->Application Master -> task

4.YARN调度模型

三种:FIFO,Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。

1)FIFO调度器:支持单队列,先进先出.

它的缺点是大的应用会占用所有的集群资源,导致其他应用被阻塞.生产环境不会用.

2)容量调度器:分多个队列每个队列执行FIFO.

缺点是如果某队列没有任务,但是它的资源也不会释放,会导致资源的浪费.

3)公平调度器:支持多队列,保证每个任务公平享有队列资源。

job1进来的时候享有集群的所有资源,job2进来之后,job1会释放一半的资源给job2,两个job会并行执行,等job2运行结束,job1又会用有整个集群资源.

在生产环境怎么选择?

大厂:如果并发度要求比较高,选择公平调度器,要求服务器性能必须ok。

中小公司:服务器资源不太充裕,选择容量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值