目录

  • 一、Yarn资源调度器
    • Yarn 基础架构
  • 二、YARN工作机制
  • 三、作业提交全过程
    • 1. HDFS、YARN、MapReduce三者关系
    • 2. 作业提交过程(YARN)
    • 3. 作业提交过程(HDFS & MapReduce)

一、Yarn资源调度器

⭐️:YARN是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于操作系统上的应用程序

作用:
YARN负责管理集群资源;
负责给任务合理分配资源。

Yarn 基础架构

YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。

二、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任务分配给另外2x NodeManager,另外2x NodeManager分别领取任务并创建容器;
  12. MR向2x接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序;
  13. MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask;
  14. ReduceTask向MapTask获取相应分区的数据;
  15. 程序运行完毕后,MR会向RM申请注销自己。

三、作业提交全过程

1. HDFS、YARN、MapReduce三者关系

2. 作业提交过程(YARN)

3. 作业提交过程(HDFS & MapReduce)


HDFS的读写数据流程==>

作业提交全过程:

  • 一、作业提交
  1. Client调用job.waitForCompletion()方法,向整个集群提交MapReduce作业;
  2. Client向RM申请一个作业id;
  3. RM给Client返回该job资源的提交路径和作业id;
  4. Client提交jar包、切片信息和配置文件到指定的资源提交路径;
  5. Client提交完资源后,向RM申请运行MrAppMaster;
  • 二、作业初始化
  1. 当RM收到Client的请求后,将该job添加到容器调度器中;
  2. 某一个空闲的NM领取到该job;
  3. 该NM创建Container,并产生MrAppMater;
  4. Container从HDFS上下载Client提交的资源到本地;
  • 三、任务分配
  1. MrAppMater向RM申请运行多个MapTask任务资源;
  2. RM将运行MapTask任务分配给另外2x NodeManager,另外2x NodeManager分别领取任务并创建容器;
  • 四、任务运行
  1. MR向 2x 接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序;
  2. MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask;
  3. ReduceTask向MapTask获取相应分区的数据;
  4. 程序运行完毕后,MR会向RM申请注销自己。
  • 五、进度和状态更新

YARN中的任务将其进度和状态(包括counter)返回给应用管理器,客户端每秒(通过 mapreduce.client.progressmonitor.pollinterval 设置)向应用管理器请求进度更新,展示给用户。

  • 六、作业完成✅

除了向应用管理器请求作业进度外,客户端每5秒都会通过调用waitForCompletion()方法来检查作业是否完成。时间间隔可以通过mapreduce.client.completion.pollinterval 来设置。作业完成之后,应用管理器和Container会清理工作状态,作业的信息会被历史服务器存储以备后续用户核查。

hadoop--Yarn资源调度器的基础架构、工作机制 与 作业提交全过程相关推荐

  1. Hadoop 3.x(Yarn)----【Yarn 资源调度器】

    Hadoop 3.x(Yarn)----[Yarn 资源调度器] 1. Yarn 基础架构 2. Yarn 工作机制 3. 作业提交全过程 4. Yarn 调度器和调度算法 1. 先进先出调度器(FI ...

  2. 2.Hadoop 分布式计算框架:Mapreduce(扩展)——Yarn资源调度器

    2.Yarn资源调度器 2.3 YARN resourcemanager-HA搭建 2.3.1 文档查看与集群规划 RM高可用官方网址: http://hadoop.apache.org/docs/r ...

  3. 【十八掌●内功篇】第六掌:YARN之YARN资源调度器

    这一篇博文是[大数据技术●降龙十八掌]系列文章的其中一篇,点击查看目录:大数据技术●降龙十八掌 系列文章: [十八掌●内功篇]第六掌:YARN之架构和原理 [十八掌●内功篇]第六掌:YARN之Reso ...

  4. Hadoop的资源调度器

    Hadoop的资源调度器 概念 资源调度器分类 FIFO(先进先出调度器) Capacity Scheduler(容量调度器) Fair Scheduler(公平调度器) 概念 目前,Hadoop作业 ...

  5. Hadoop之资源调度器与任务推测执行

    Hadoop之资源调度器 目录 资源调度器概述 先进先出调度器(FIFO) 容量调度器(Capacity Scheduler) 公平调度器(Fair Scheduler) 任务的推测执行 1. 资源调 ...

  6. 大数据培训课程Yarn资源调度器作业提交全过程

    作业提交全过程 1.作业提交过程之YARN,如图4-25所示. 大数据培训课程 图4-25 作业提交过程之Yarn 作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForC ...

  7. 【Yarn】工作机制及任务提交流程

    本文以mr程序为例,解释yarn的工作机制及任务提交流程: 0. mr程序提交任务到客户端所在节点: 1.节点上的YarnRunner向ResourceManager申请一个Application: ...

  8. Hadoop大数据分布式文件系统hdfs的工作机制

    HDFS集群分为两大角色:NameNode.DataNode NameNode负责管理整个文件系统的元数据 DataNode 负责管理用户的文件数据块 namenode工作机制 namenode职责: ...

  9. 大数据培训课程Yarn资源调度器任务的推测执行

    任务的推测执行 1.作业完成时间取决于最慢的任务完成时间 一个作业由若干个Map任务和Reduce任务构成.因硬件老化.软件Bug等,某些任务可能运行非常慢.大数据培训 思考:系统中有99%的Map任 ...

最新文章

  1. php留言板实现留言评价,PHP实现留言板功能的思路
  2. C#实现邮件发送的功能
  3. 关于计算Java程序运行时间
  4. 单片机涡轮流量传感器_青天仪表为您介绍安装涡轮流量计需要注意问题
  5. Java项目:药品管理系统(java+SpringBoot+VUE+Mybatis+Maven+Mysql)
  6. OpenHarmony啃论文俱乐部玩法攻略
  7. 使用CubeMX配置STM32L476RG,Timer触发ADC采集通过DMA搬运
  8. 百度竞价账户关键词分类
  9. MEC@JavaSE@实战篇@笔记05@计算机网络技术基础
  10. 八股总结(二)计算机网络与网络编程
  11. 基于BERT的新闻文本分类
  12. Gn 与 Ninja学习和使用
  13. java棒棒糖和皮卡丘八音盒_如何比别人抢先一步买到肯德基的皮卡丘八音盒?我有两个小建议...
  14. Elasticsearch 第三方工具包Bboss的简单使用
  15. 微积分(一)一般概念以及从圆的面积怎么来?
  16. 雷军:《我十年的程序员生涯》系列之三(失败的大学创业经历)
  17. 局域网-无法访问网上邻居解决方法
  18. 雅虎开始关闭韩国业务并裁员 200 人
  19. 身体语言密码_《身体语言密码》,将个性分析应用到成功的三法则
  20. 26-爬取链家二手房成交的房产信息【简单】

热门文章

  1. 第一章第一节:C++简介与学习方法
  2. 蓝桥杯-算法提高-打水问题
  3. 栈应用:判断字符串中括号是否成对出现
  4. 栈应用:实现二进制转八进制、十进制、十六进制
  5. ASP.NET MVC 2 学习笔记二: 表单的灵活提交
  6. 原型设计-结对第一次作业
  7. FirstDjangoWebApp-1
  8. 优雅的避免空指针的示例
  9. MapReduce实现计数
  10. datetime方法