yarn包括两块,一个是ResourceManager,主要的作用是管理集群上的资源,目前hadoop版本上,管理的只有cpu和内存.
  另外一个叫NodeManager,这上面会跑我们的程序,叫ApplicationMaster,我们的MapReduce在上面的跑的不叫做ApplicationMaster叫MRAppMaster,通常情况下我们会有多个NodeManager,其余上面跑的就是我们MapReduce运行时的作业,MapTask或者ReduceTask,还有一个Client客户端就是我们用户提交代码的地方.

  首先我们自己的代码要提交到ResourceManager,通过ApplicationClientProtocol协议.ApplicationClientProtocol相当于hadoop1中MapReduce提交的ClientProtocol,在hadoop2中就不叫job了,而叫Application,因为在我们在MapReduce中叫job,而在storm中不叫job,叫Topologgy.
  ApplicationClientProtocol的作用是让我们Client通过方法submitApplication()把我们写的MapReduce代码提交上去的.ResourceManager就会分配一个空闲的NodeManager去运行你的ApplicationMaster,对于我们的MapReduce就会在NodeManager上是运行一个MRAppMaster.

  NodeManager的确定:哪个空闲就使用哪一个.
  ApplicationMaster相当于MapReduce的JobTracer,JobTracker在运行的时候需要申请资源来跑自己的Map任务和Reduce任务,所以ApplicationMaster也需要和ResourceManager进行交互.

  ApplicationMaster和ResourceManager是通过协议ApplicationMasterProtocol进行交互的.目的是向ResourceManager申请资源,首先使用方法registerApplicationMaster()注册一下,然后使用方法allocate(AllocateRquest)申请我们要运行Map或者是Reduce的资源.ResourceManager返回结果之后,ApplicationMaster就会和NodeManager通信.
  ApplicationMaster和NodeManager通过协议ContainerManagermentProtocol进行通信.ApplicationMaster申请到资源之后需要在NodeManager上执行startContainers(StartContainersRequest)启动任务,等到任务结束执行stopContainers(StopContainersRequest)关闭NodeManager上的Container,在运行的过程中可以使用getContainerSatatus(GetContainerStatusRequest)监控状态的变化情况.
  NodeManager和ResourceManager也需要通信,使用协议ResourceTrackerProtocal将自身资源状态以心跳的方式发送给ResourceManager.
  ResourceManager用来管理其他NodeManager节点的资源,其他的应用申请的时候,ResourceManager就会把任务分配到那些NodeManager上.
  MRAppMaster和MapTask或ReduceTask之间走的是MapReduce之间通信的协议.
  如果没有应用ResourceTrackProtocal还是活着的,当有应用来的时候,会先走ApplicationClientProtocol协议把代码提交给ResourceManager,ResourceManager分配一个NodeManager去运行ApplicationMaster,这个NodeManager起来之后会去执行ApplicationMasterProtocol,会向ResourceManager申请资源,拿到资源之后使用ContainerManagermentProtocol申请启动一个任务,关闭一个任务.只要NodeManager活着始终使用ResourceTrackProtocol和ResourceManager进行通信,报告自身的状态.

    

Yarn通信过程的更多相关文章

  1. 网络中两台主机的通信过程(TCP)

    两台主机通信有两种情况:1.在同一网段中 2.不在同一网段中 (1.)在同一网段的通信过程 主机在应用层上的操作: TCP/IP协议上tcp的端口对应的各种应用程序,客户机要访问某个应用程序就会要求打 ...

  2. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  3. 【转】wpa_supplicant与wpa_cli之间通信过程

    [转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...

  4. ZLL本地局域网通信过程

    Interface_srpcserver -----以灯的状态操作位例 网关与客户端通过Socket API通信,Socket API在socket_server.c中实现,socket_server ...

  5. SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程

    相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868.shtml http://www.gxu.edu.cn/college ...

  6. WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  7. Portlet 通信过程详解

    Portlet 通信过程详解 在 Portal 的开发过程中,Theme 与 portlet 之间的通信,以及 portlet 之间的通信是开发人员常常遇到的问题.通常 Portlet 之间需要能够互 ...

  8. WCF通信过程

    无废话WCF入门教程二[WCF应用的通信过程] 一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Ser ...

  9. Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程

    设备控制软件编程涉及到的基本通信方式主要有TCP/IP与串口,用到的数据通信协议有Fins与ModBus. 更高级别的通信如.net中的Remoting与WCF在进行C/S架构软件开发时会采用. 本篇 ...

随机推荐

  1. Android开发效率—Eclipse快捷键

    很多过去使用Visual Studio开发软件的网友可能不熟悉Java开发环境,今天Android开发网告诉大家一些提高Android开发效率的Eclipse快捷键,可以有效率的帮助我们管理代码和减少 ...

  2. 批处理 —— 每天生成一个以日期命名的文件(Win XP)

    想达到这样一个效果:每天在某个目录下生成一个以日期命名的文件(如,0705.txt). 第一步,新建一个批处理文件 新建一个文件,比如[create_day_file.bat].编辑,输入以下内容 : ...

  3. PowerDesigner15.1创建模型及生成带注释sql操作手册

    转自:http://blog.csdn.net/huiwenjie168/article/details/7824029 一.创建模型 操作:file-->new Model… 快捷键:ctrl ...

  4. 35.3wCF编程

    1.新建一个空白的解决方案文件,然后添加新建项目,项目类型为WCF服务应用程序,CH35Ex01 2.添加新建控制台应用程序Ch35Ex01Client 3.生成解决方案 4.右键Ch35Ex01Cl ...

  5. C# treeview控件部分节点添加checkbox

    一.先初始化treeview this.treeView1.CheckBoxes = true; this.treeView1.ShowLines = false; this.treeView1.Dr ...

  6. Large Object Heap内存碎片在.NET 4.5中的改进

    .NET 4.5已然到来,预览了解了下Large Object Heap在.NET 4.5中的效能改进.借此和大家来探讨下.本文不讨论Loder Heap,SOH(samll object heap) ...

  7. 如何使用USB安装XenServer 6.x

    在XenServer 5.6以前我们能够很容易的通过一些工具,直接制作USB安装介质,然后快速安装XenServer,但是我们发现,到XenServer6.0以后,通过工具直接制作的XenServer ...

  8. iPad中控制器view初始的width和height

    1> 规律 * width 是宽高中最小的那个值 * height 是宽高中最大的那个值 2> 举例(比如窗口根控制器的view,有状态栏的情况下) * 横屏  width = 748,h ...

  9. mysql mac启动

    设置别名 alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin 修改密码 su ...

  10. 【JavaScript学习笔记】鼠标样式

    style="cursor:hand"   手形 style="cursor:crosshair"   十字形       style="cursor ...