YARN面试题

YARN面试题

YARN面试题_第1张图片

YARN资源调度平台三大组件

  • Resource Manager(RM) :负责资源的分配与调度,接收客户端请求、监控NodeManager以及Application Master
  • Node Manager(NM) :负责管理本机资源,处理Resource Manager与Application Master相关命令
  • Application Master(AM) :运行在NodeManager节点中,负责向Resource Manager申请资源并分配给内部任务和任务监控、容错以及销毁等工作(每个Job任务都有一个对应的AppMaster)

YARN提交MR的流程

① 客户端提交任务到Yarn集群中的RM
② 然后RM随机找一台有资源的NM节点,用于启动AppMaster程序。节点启动后,AppMaster汇报给RM并建立心跳机制
③ RM准备好AppMaster申请的资源信息,等待AppMaster的拉取
④ AppMaster拉取到了相关的资源后连接对应NM节点, 让其启动MapTask和ReduceTask并占用相关的资源,同时反向注册回AppMaster
⑤ AppMaster开始任务分配工作。各个任务向AppMaster汇报自己的状态和进度,以便当任务失败时可以重启任务。当任务执行结束时AppMaster会通知NM自动回收资源


YARN的三种调度方案及特征

FIFO scheduler(先进先出的调度器)

一般不使用,除非整个集群就你自己用

  • 措施:根据作业的提交顺序,先来先服务
  • 优势:保证每一个任务拿到最大的资源
  • 弊端:如果第一个任务比较大, 有可能将整个集群中所有的资源都占用了, 导致后续的任务长时间等待

YARN面试题_第2张图片

Capacity Scheduler(容量调度器)

Apache官方版本默认的调度方案

  • 措施:可以提前定义多个队列(每个队列依然是FIFO特性),每个队列可以使用集群中部分资源。
  • 优势:可以让多个部门都拥有一部分资源, 不会因为某个部门将全部资源占用, 而导致其他部门没有资源可用, 同时通过资源抢占, 可以让大的任务拥有更多的一些资源(一般拿不到100%资源)
  • 弊端:如果遇到超大任务, 由于无法获取到资源中所有资源, 可能会导致任务执行效率会有所降低
    YARN面试题_第3张图片

Fair Scheduler(公平调度器)

CDH商业版本hadoop默认采用的调度方案

  • 措施:当任务到达队列后, 集群会将所有的资源都交给第一个任务, 让其获取最大的资源 以达到快速运行, 在此运行过程中, 如果有了新的任务到来, 会让其先前释放出最多50%资源, 交给下一个任务来运行, 当下一个任务执行完成后, 如果发现上一个任务依然没有跑完, 还会在此将资源交给上一个任务
    • 注意:在找上一个任务获取资源的时候, 采用 先等待 后强制措施
  • 优势:可以保证让所有任务都拿到相对公平的资源, 保证大家都可以运行
  • 弊端:如果任务量比较庞大, 而且每个任务也都比较庞大, 可能会导致长时间无法运行完成

你可能感兴趣的:(面试,面试,java,经验分享)