图解YARN工作原理

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的工作流程。

时间: 2024-11-03 03:41:39

图解YARN工作原理的相关文章

LVS介绍及工作原理图解

很多人使用过LVS集群系统,但对于LVS集群,大多数人不清楚它到底是个什么东西.接下来我们就聊聊LVS及其工作原理. 一.lvs介绍 LVS的英文全名为"Linux Virtual Server",即Linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统. 二.Lvs原理介绍 图示如下: 1.首先用户向负载均衡器调度器(Director Server)发起请求,负载均衡器将请求发往

图解 WebGL & Three.js 工作原理

1.WebGL背后的工作原理是什么? 2.以Three.js为例,讲述框架在背后扮演什么样的角色? 我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或者用Three.js做过了一些东西,这个时候,你可能碰到了这样一些问题: 1.很多东西还是做不出来,甚至没有任何思路: 2.碰到bug无法解决,甚至没有方向: 3.性能出现问题,完全不知道如何去优化. 这个时候,我们需要了解更多. 1.什么是矩阵? 简单说来,矩阵用于坐标变换,如下图: 2.那它具体是怎么变换的呢,如下图: 3.举个实

图解Kerberos认证工作原理

本文是我在看了这篇英文说明之后的总结 https://technet.microsoft.com/zh-cn/library/cc961976.aspx 是总结,不是翻译,所以是我看后按自己的理解写的,如有问题,请指正! Kerberos在古希腊神话中是指:一只有三个头的狗.这条狗守护在地狱之门外,防止活人闯入.Kerberos协议以此命名,因为协议的重要组成部分也是三个:client, server, KDC(密钥分发中心). 要了解Kerberos协议的工作过程,先了解不含KDC的简单相互身

图解WebGL&Three.js工作原理

“哥,你又来啦?”“是啊,我随便逛逛.”“别介啊……给我20分钟,成不?”“5分钟吧,我很忙的.”“不行,20分钟,不然我真很难跟你讲清楚.”“好吧……”“行,那进来吧,咱好好聊聊” 一.我们讲什么? 我们讲两个东西:1.WebGL背后的工作原理是什么?2.以Three.js为例,讲述框架在背后扮演什么样的角色? 二.我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或者用Three.js做过了一些东西,这个时候,你可能碰到了这样一些问题:1.很多东西还是做不出来,甚至没有任何思路:

怎么理解impala(impala工作原理是什么)

下面给大家介绍怎么理解impala,impala工作原理是什么. Impala是hadoop上交互式MPP SQL引擎, 也是目前性能最好的开源SQL-on-hadoop方案. 如下图所示, impala性能超过SparkSQL. Presto. Hive. impala与hadoop生态结合紧密 (1) HDFS是impala最主要的数据源. 除此之外, impala也支持HBase,甚至支持S3存储. (2) impala表定义存储在hive metastore中, 支持读取hive表定义.

HTTPS的工作原理

参考自<图解HTTP> 果壳网http://www.guokr.com/post/114121/ HTTPS的工作原理 增加了一层:HTTPS流程:应用层 HTTP->SSL/TLS->TCP->IP 为什么不一直使用HTTPS? 与纯文本传输相比,加密传输消耗大量的CPU与内存资源,HTTPS大概比HTTP慢2-100倍.它的慢体现在两点:1.通信慢  2.处理速度慢 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手, 在握手过程中将确立双方加密

Android ListView工作原理完全解析,带你从源码的角度彻底理解

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况.ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了. 另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比

Hadoop2.6(新版本)----MapReduce工作原理

最近在研究Hadoop,发现网上的一些关于Hadoop的资料都是以前的1.X版本的,包括MapReduce的工作原理,都是以前的一些过时了的东西,所以自己重新整理了一些新2.X版本的MapReduce的工作原理 下面我画了一张图,便于理解MapReduce得整个工作原理 下面对上面出现的一些名词进行介绍 ResourceManager:是YARN资源控制框架的中心模块,负责集群中所有的资源的统一管理和分配.它接收来自NM(NodeManager)的汇报,建立AM,并将资源派送给AM(Applic

Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

Linux内核设计(第一周)--从汇编语言出发理解计算机工作原理 计算机工作原理 汇编指令 C语言代码汇编分析 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 从2月22日起,本学期的linux课程开始了.通过这两天的学习,觉得孟宁老师讲的真不错,条理清晰,举例适当.本周从计算机工作原理出发,回顾了冯诺依曼计算机结构,也回顾了汇编寄存器.汇编指令.C语言程序的汇编分析技巧,很