在 Hadoop1 中 MapReduce 框架即负责集群的资源调度,还负责 MapReduce 程序的运行。由于这种架构资源调度和计算高度耦合,导致了一个 Hadoop 集群中只能跑 MapReduce 计算任务,无法跑其它的计算任务,维护成本很高。

在后面的 Hadoop2 中改成了 Yarn + MapReduce 架构,将资源的调度工作交给了 Yarn,MapReduce 只负责计算。这样就能保证 Hadoop 集群技能跑 MapReduce 计算任务,还能跑任何支持 Yarn 资源调度的计算任务,比如 Spark,Storm 等。

Yarn 的架构图如下:

一,Yarn 的组成

从图上可以看出 Yarn 是由两个部分组成:

1,资源管理器 (ResourceMananger)。负责整个集群的资源管理和分配;

2,节点管理器 (NodeManager)。基本上和 HDFS 的 DataNode 进程同时出现,负责具体服务器的资源和任务管理。

ResourceManager 又包含两个重要组件:

1,调度器。其实就是一个资源调度算法,根据应用程序提交的资源申请和当前集群的资源情况进行资源分配。Yarn 进行资源分配的单位是容器 (Container),每个容器包含一定量的内存,cpu 等计算资源。容器是由调度器分配,由 NodeManager 启动和管理,NodeManager 会监控每个节点的容器运行情况并向 ResourceManager 汇报;

2,应用程序管理器。主要负责应用程序的提交,监控应用程序运行状态等。应用程序启动后会在集群中启动一个 ApplicationMaster ,ApplicationMaster 也运行在容器中,后续由 ApplicationMaster 根据应用程序的资源需求进一步向 ResourceManager 申请资源,申请到资源后,分发应用程序代码到各个节点的容器上运行,进行分布式计算。

二,Yarn 的工作流程

以一个具体的 MapReduce 程序为例,分析 Yarn 的整个工作流程:

1,我们向 Yarn 集群提交我们的应用程序,包括 MapReduce ApplicationMaster、MapReduce 程序、MapReduce 程序启动命令;

2,ResourceManager 进程和 NodeManager 进程进行通信,根据集群的资源情况,分配第一个 Container 给集群的某个 NodeManager,NodeManager 启动 Container;

3,ResourceManager 将 MapReduce ApplicationMaster 分发到刚才启动的 Container 上,并在容器中启动;

4,MapReduce ApplicaitonMaster 启动之后立刻向 ResourceManager 注册,并且为 MapReduce 程序申请资源;

5,MapReduce ApplicationMaster 申请到容器之后立刻和对应的 NodeManager 通信,将用户的 MapReduce 程序分发到对应的 Container 中运行,这里运行的就是 Map 进程或者 Reduce 进程;

6,Map 或者 Reduce 任务在运行期间会向 MapReduce ApplicationMaster 进行通信,汇报自己的运行状态,如果运行结束,MapReduce Application 会向 ResourceManager 注销并释放所有的容器资源。

这里可以看出,Yarn 不会和 MapReduce 有任何的耦合,Yarn 只会和 MapReduce ApplicationMaster 进行通信。由 MapReduce ApplicationMaster 做 MapReduce 程序和 Yarn 的桥梁。这里的 MapReduce ApplicationMaster 是 MapReduce 实现了 Yarn 的接口规范实现的。

yarn的组成部分_Yarn 的组成及其工作流程相关推荐

  1. yarn的组成部分_图解YARN工作原理

    YARN 即MapReduce V2版本.相比MapReduce V1 它有很多优点: 1. 分散了jobTracker 的任务.资源管理任务由资源管理器负责,作业启动.运行和监测任务由分布在集群节点 ...

  2. Yarn框架和工作流程研究

    一.概述     将公司集群升级到Yarn已经有一段时间,自己也对Yarn也研究了一段时间,现在开始记录一下自己在研究Yarn过程中的一些笔记.这篇blog主要主要从大体上说说Yarn的基本架构以及其 ...

  3. yarn的基本组成和工作流程

    yarn的基本组成和工作流程 yarn是负责资源管理的,协调各个应用程序的资源使用情况 一.基本组成 yarn主要由以下几个部分组成 1.resourcemanager 主要负责资源的调度和应用程序的 ...

  4. Yarn框架和工作流程简介

    大数据现在越来越火,各种计算框架不断出现,比如内存计算框架(Spark).流式计算框架(Storm).迭代式计算框架(iMapReduce)等新型计算框架的出现,经典MR计算框架(MRv1)的局限性日 ...

  5. Yarn详细的工作流程

    yarn详细工作流程 第一步:客户端向ResourceManager 申请运行程序 第二步:ResourceManager 检查是否有运行权限,如果有就会返回jobid和程序提交的资源路径 第三步:根 ...

  6. 测试工程师工作流程概论

    作者:未知    文章来源:网络 测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关.本文主要讨论测试工程师的一般工作流程. 做好测试准备 1)明确测试任务的范围 测试文档通常包括测 ...

  7. 你的生产型ML复现不了,可能是工作流程出了问题

    2020-10-19 14:33:28 选自maiot blog 作者:Benedikt Koller 机器之心编译 编辑:Panda.张倩 在机器学习社区,越来越多的人开始讨论研究的可复现性,但这些 ...

  8. 【业务知识】档案工作流程

    导读:随着我国把"四个自信"中文化自信更加突出位置,实现从文化大国到文化强国的逐步迈进,因此对文化建设的也越来越重视.档案属于文化事业组成部分,此文重点把档案工作流程简单示意出来, ...

  9. oracle流复制实现,Oracle流复制技术的基本概念、工作流程及其容灾备份

    龙源期刊网 http://www.doczj.com/doc/9e45114b3186bceb18e8bb1b.html Oracle流复制技术的基本概念.工作流程及其容灾备份 作者:周军 来源:&l ...

最新文章

  1. lambda表达式(详)
  2. JavaScript入门篇 - DOM操作
  3. [译]创建物化视图的先决条件
  4. Scikit-learn 数据预处理之标准化StandardScaler
  5. 长脸了!阿里云这位英雄拿下了世界第一
  6. 第6章 数据库索引优化
  7. 一些意想不到的bug
  8. [转载] 莫烦python学习笔记之numpy.array,dtype,empty,zeros,ones,arrange,linspace
  9. html + css 实现淘宝首页(静态页面)
  10. 政策频发,全国区块链应用不断涌现 | 产业区块链发展周报
  11. Java 打印Hello World
  12. 詹姆斯麦迪逊大学计算机专业,詹姆斯麦迪逊大学简介_詹姆斯麦迪逊大学介绍_詹姆斯麦迪逊大学James Madison University (JMU)...
  13. 计算机相关英语论文,计算机相关英文论文.doc
  14. Flutter 全能型选手GetX —— 路由管理
  15. 介于上海与江苏的地铁小户型
  16. 解析几何 曲线与二次曲面 曲面方程与坐标变换(2.1,2.2)
  17. Fluent API
  18. MOOC清华《程序设计基础》第3章:谁是嫌疑犯(普通循环枚举)
  19. [Luogu P2057] 善意的投票
  20. rtx服务器消息管理器,RTX企业微信插件来了,现在你可以在手机上收发RTX消息

热门文章

  1. JavaScript 中 let 的使用
  2. OCR财务报表识别方案应用
  3. python pip什么意思_python中的pip是什么意思
  4. MotionLayout MotionScene 动画从未如此简单!
  5. each 和 forEach 和{{each}}
  6. 使用FlexPaper加载swf出现无法加载的问题
  7. picker-view-column自定义picker
  8. SQL 多表查询例题
  9. Spring Boot整合Redis缓存(Lettuce)
  10. java根据前序和中序建树_Java实现根据前序遍历构建二叉树(前序遍历、中序遍历、后序遍历)...