博学谷学习记录超强总结,用心分享 | yarn的执行流程

Posted 积雷山摩云洞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博学谷学习记录超强总结,用心分享 | yarn的执行流程相关的知识,希望对你有一定的参考价值。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


【博学谷IT技术支持】

yarn的组成部分

hadoop是由Common、HDFS、YARN、MapReduce等核心模块组成,yarn负责解决资源调度问题,这里介绍下yarn的业务执行流程。

  • yarn是Master/Slave结构,主要包含ResourceManage、NodeManager、ApplicationMaster和Conainer等组件。

  • ResourceManager为主节点,负责整个集群资源的管理和分配,由Scheduler(调度器)和ApplicationManager(应用程序管理器)组成。

    • Scheduler根据容量和队列等限制条件,为每个运行的程序分配资源
    • ApplicationManager 负责管理管理所有的应用程序,包括应用程序提交、与调度器协调资源启动ApplicationMaster、监控ApplicationMaster运行状态,并在失败时重新启动它。
  • NodeManager是从节点,定时想ResourceManager汇报资源使用情况,保持心跳,接受来自ApplicationMasterde 的Container启动/停止等各种请求。

yarn的执行流程

  1. 客户端向RM提交任务请求
  2. RM会在NM分配一个Container,启动AppMaster,让它管理整个任务的执行。
  3. AppMaster向任务调度器进行注册
  4. AppMaster向应用程序管理器申请资源,RM以Container列表的形式返回资源列表。
  5. AppMaster根据资源列表分别向对应的主机申请资源
  6. 各个NM根据Container分别开辟对应的资源,并且AppMaster会将MR任务各个MapTask和ReduceTask放在这些资源中运行
  7. 各个MapTask和Reduce在运行过程中,有任何的状态都需要向AppMaster汇报。
  8. AppMaster会将任务执行的最终状态汇报给RM

简述

客户端向ResourceManager提交任务请求,RM分配资源

Scheduler调度器

  • FIFO(队列调度器): 将job放入队列中,先入的job会优先得到资源,会因为一个job过大占用多数资源,影响后边job执行
  • Capacity Scheduler(容量调度器):将资源化成多个队列,提交任务如果没有指定队列会默认队列,可以给每个队列设置资源占用比例。
  • Fair Scheduler(公平调度器):根据job对总资源进行平均分配。

ApplicationMaster

每个应用程序都包含一个ApplicationMaster,主要的作用是

  • 与ResourceManager协调获取资源
  • 将任务进一步分配给内部任务
  • 与NodeManager通信启动或停止任务
  • 监控所欲任务运行状态,并在失败时为任务重新申请资源启动任务

Container

container是yarn中抽象的资源,它封装了某个接地那上的多维度资源,如内存,cpu,磁盘,网络等。

  • 运行在ApplicationMaster的Container
  • 运行在各类任务的Container

以上是关于博学谷学习记录超强总结,用心分享 | yarn的执行流程的主要内容,如果未能解决你的问题,请参考以下文章

博学谷学习记录超强总结,用心分享 | 小程序 canvas生成图片

博学谷学习记录超强总结,用心分享 | hive 查询分组join

[博学谷学习记录] 超强总结,用心分享 | Zookeeper

博学谷学习记录超强总结,用心分享 | 产品经理还得懂点儿运营

博学谷学习记录超强总结,用心分享|狂野大数据课程基于Pycharm完成PySpark入门案例(上)的总结分析

博学谷学习记录 自我总结 用心分享 | Alibaba- GateWay