YARN 即MapReduce V2版本。相比MapReduce V1 它有很多优点:

1. 分散了jobTracker 的任务。资源管理任务由资源管理器负责,作业启动、运行和监测任务由分布在集群节点上的应用主题负责。这样大大减缓了MapReduce V1中jobTracker 单点瓶颈和单点风险的问题,大大提高了集群的扩展性和可用性。

2.在MapReduce V2中ApplicationMaster是一个用户可定制的部分,因此用户可以针对编程模型编写自己的应用主题程序。这样大大扩展了MapReduce V2 的适用范围。

3.在资源管理上使用Zookper实现故障转移。当资源管理故障时,备用资源管理器将根据保存在ZooKeeper中的集群状态快速启动。MapReduce V2支持应用程序指定检查点。这就能保证应用主题在失败后能迅速根据hdfs上的状态的状态重启。这两个措施大大提高了MapReduce V2的可用性。

4.集群资源统一组织成资源容器,而不像在MapReduce V1中Map池和Reduce池有所差别。这样只要有任务请求资源,调度器就会将集群中的可用资源分配给请求任务,而无关资源类型。这就大大提高了资源的利用率。

其实YARN还有很多优点,在这里就不尽兴一一列举。主要说一下YARN的工作流程。

YARN 具体由哪些部分组成:

YARN共有ResourceManager、NodeManager、JobHistoryServer、Containers、Application Master、job、Task、Client组成。

>  Resource Manager: 一个Cluster 只有一个,负责资源调度、资源分配等工作。

>  JobHistory Server: 负责查询job运行进度及元数据管理。

>  nodemanager:运行在datanode节点,负责启动Application和对资源的管理。

>  Containers: Container通过ResourceManager分配。包括容器的cpu、内存等资源。

>  Application master:通俗来说Application master 相当于包工头,Resource Manager 相当于经理。Resource Manager 首先将任务给Application master,然后Application master 在将Resource manager的指示传达给各个 nodemanager(相当于工人)进行干活儿。每个application只有一个Applicationmaster,运行在node manager节点,Application   master是由Resource manager指派的。

>  job:一个mapper、一个Reducer或一个进程的输入列表。job也可以叫做Application。

>  task:一个具体做mapper或Reducer的独立的工作单元。task运行在nodemanager 的Container中。

>  client:一个提交给Resource manager的一个Application程序。

已经知道了YARN由哪些工作单元组成,接下来就来说说一个job时如何进行处理的整体流程。

用户向YARN中提交程序/作业,其中包括Application Master启动、ApplicationMaster的命令及用户程序等;ResourceManager为作业分配第一个Container,并与对应的nodemanager通信,要求它在这个Container中启动改作业的Application master;Applicationmaster首先向Resourcemaster注册,这样用户可以直接通过Resourcemanager查询作业的运行状态,然后它将为各个人物申请资源并监控任务的运行状态,知道运行结束;Application通过RPC请求向Resourcemanager申请和领取资源。

         然后Applicationmaster 要求指定的nodemanager 节点启动任务。

         启动之后,去干Resource Manager 指定的map tesk。

         等Map task干完之后,通知application master。然后application master 去告知resouce manager。接下来Resource manager 分配新的资源给application master,让它找人干其它的活儿。

         接下来Application master 通知nodemanager启动新的Container准备干活儿。该活儿的输入是map task结束的输出。

         开始干Reduce Task任务。

等各个节点上的Reduce task 都干完了,将干活儿的nodemanager的任务结果进行同步。做最后的reduce任务。

    等都计算完了,最后将最终的结果输出到hdfs。任务完成。

通过图解可以更清楚的了解整个 YARN的工作流程。

yarn的组成部分_图解YARN工作原理相关推荐

  1. 【集群】图解 LVS-NAT工作原理

    lVS工作原理 客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理. RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的 ...

  2. 图解 Git 工作原理

    来源:深度学习爱好者本文约2600字,建议阅读5分钟本文图解Git中的最常用命令.如果你稍微理解Git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 上面的四条命令在工作目录.暂存目录(也叫做索 ...

  3. 图解 Git 工作原理,看完你就懂了!

    本文图解Git中的最常用命令.如果你稍微理解Git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. git add files ...

  4. promise用法_图解 Promise 实现原理(四):Promise 静态方法实现

    作者:Morrain 转发链接:https://mp.weixin.qq.com/s/Lp_5BXdpm7G29Z7zT_S-bQ 前言 Promise 是异步编程的一种解决方案,它由社区最早提出和实 ...

  5. 收藏 | 图解 Git 工作原理

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:深度学习这件小事 http://marklodato.github.io/visual-git-guide/i ...

  6. 图解 Git 工作原理,看了秒懂!

    后台回复"大礼包"有惊喜礼包! 每日英文 Never get stuck with the thing that ruins your day. Stay upbeat and b ...

  7. python调试器原理_调试器工作原理——基础篇

    本文是一系列探究调试器工作原理的文章的第一篇.我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起. 关于本文 我打算在这篇文章中介绍关于Linux下的调试器实现的主要 ...

  8. 计算机电源简单知识,简明易懂 图解电源工作原理

    同学们,今天我们来学习一堂关于电源工作原理的课.因为是针对新手的知识普及课,所以在下会用朴实的语言尽量的把这堂课讲得通俗.简单.易懂一些.如果有专业大师级别的看客路过的话,还望多多交流. 我们先来讲讲 ...

  9. 图解 Git 工作原理和常用命令使用教程

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 marklodato.github.io/visual-git-guide/in ...

最新文章

  1. 网站性能优化之yahoo军规
  2. Linux中wait()函数及waitpid()函数
  3. php 盾灵新闻系统,代码审计 | 记一次盾灵系统审计从后台到Getshell
  4. SQL中 Left Join 与 Right Join 与 Inner Join 与 Full Join的区别
  5. windows虚拟机_Windows电脑体验macOS,装黑苹果?虚拟机也可以的——VMWare篇
  6. vim 模式下的几个快捷用法
  7. 清华大学计算机系网络课程视屏,清华大学计算机系网络课程
  8. VS2010详细安装步骤
  9. visio安装问题总结
  10. 电子设计教程33:RC桥式正弦波振荡电路
  11. Win10指定用户访问共享文件及“无法访问。你可能没有权限使用网络资源。”问题解决
  12. 美团后端一二面c++
  13. 爱奇艺网络流量分析引擎 QNSM 及其应用
  14. cba篮球暂停次数和时间_篮球比赛CBA中每节多长时间?每次暂停都分为多长
  15. ARVR游戏开发中常用到的人物模型合集
  16. 纯真ip php,PHP利用纯真数据库获取访客IP物理地址
  17. JSP+MySQL基于SSM框架的教室管理系统设计与实现
  18. html布局的wrap方法,wrap_content设置一个视图的尺寸为wr
  19. 实时自动驾驶车辆定位技术都有哪些?(视觉/Lidar/多传感器数据融合)
  20. 给手机充电时,边充边玩会爆炸?夸大其词哗众取宠

热门文章

  1. 【编程珠玑】读书笔记 第二章 算法
  2. CSS技巧和经验列表
  3. 列表导航栏实例(01)
  4. Sun Solaris 9 下Squid 代理服务器的配置笔记
  5. 比特币现金与比特币呈竞争关系 分析表示加密货币之间的竞争不是坏事
  6. 比特币现金足球:BCH驱动的多人世界杯应用
  7. HTML5会成为移动互联网应用开发的未来吗?
  8. 【面试】Java基础中的那些事-One
  9. Spring Boot定时任务应用实践
  10. linux下配置环境变量【原创】