Yarn问答题

本文详细解析了MapReduce中Job的提交过程,介绍了YARN的工作机制,包括客户端提交应用程序、ResourceManager分配资源、NodeManager执行任务等步骤。同时,文章探讨了YARN的三种资源调度策略:FIFO、容量调度和公平调度,分析了它们的特点。最后,给出了配置自定义队列的具体步骤,涉及capacity-scheduler.xml配置文件的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Yarn问答题

一、MR中的一个Job是如何提交的?

​ 提交Job:底层通过submitJobInternal ()方法完成提交

具体步骤:

  • 检测输入输出路径合法性
    • 路径非法直接抛异常
    • 路径合法开始计算文件切片信息
  • 计算文件切片信息
    • 确定最终开启的MT数量
  • 检测是否有分布式缓存文件
    • 如果有,设置到Job中
  • 将当前运行的jar包、切片信息、配置信息放入临时产生、用于保存job信息的文件夹下
  • 准备就绪,提交完成

二、描述一下YARN的工作机制。

(1)MR程序提交到客户端所在的节点。
(2)YarnRunner向ResourceManager申请一个Application。
(3)RM将该应用程序的资源路径返回给YarnRunner。
(4)该程序将运行所需资源提交到HDFS上。
(5)程序资源提交完毕后,申请运行mrAppMaster。
(6)RM将用户的请求初始化成一个Task。
(7)其中一个NodeManager领取到Task任务。
(8)该NodeManager创建容器Container,并产生MRAppmaster。
(9)Container从HDFS上拷贝资源到本地。
(10)MRAppmaster向RM 申请运行MapTask资源。
(11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。
(12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。
(13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。
(14)ReduceTask向MapTask获取相应分区的数据。
(15)程序运行完毕后,MR会向RM申请注销自己。

三、YARN中有几种资源调度实现策略?分别阐述一下各自的特点

FIFO先进先出:单队列,提交任务后把job放入该队列中,谁先进队列谁先执行,特点是串行执行,效率不高

容量:多条FIFO队列,可以指定额定资源占比和最大资源占比以及还可以配置job优先级,使用灵活

公平:在容量的基础上升级改造,一定条件下就是容量策略,特点是所有job在资源充足的情况下可以并行运行

四、简述一下如何配置一个自定的队列?

修改Yarn的capacity-scheduler.xml配置文件:

指定队列的名称以及相关的属性配置

配置额定容量和最大容量以及队列中运行的Job的优先级等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值