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. Java中的ArrayList的初始容量和容量分配

    List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的大 ...

  2. YTU 2621: B 继承 圆到圆柱体

    2621: B 继承 圆到圆柱体 时间限制: 1 Sec  内存限制: 128 MB 提交: 313  解决: 240 题目描述 定义了Circle圆形类,在此基础上派生出Cylinder圆柱体类. ...

  3. HeadFirst Jsp 14 (Structs)

    大的web程序可能很复杂, 分很多”层” 有关 RMI 的部分, 可以参考 headfirst java 中的 RMI 的部分. struts 是一个框架, 框架是一些接口和类的集合, 这些接口和类设 ...

  4. zoj 3822 Domination (概率dp 天数期望)

    题目链接 参考博客:http://blog.csdn.net/napoleon_acm/article/details/40020297 题意:给定n*m的空棋盘 每一次在上面选择一个空的位置放置一枚 ...

  5. CSS 中区块的使用_宽高属性

    width 像素/百分比 区块的宽度 auto height 像素/百分比 区块的高度 auto min-height 像素像素/百分比 区块最小高度 auto max-height 像素像素/百分比 ...

  6. Android Studio插件

    awesome-android-ui(UI范例库) https://github.com/wasabeef/awesome-android-ui/tree/master/pages LMBanners ...

  7. hdu4605 magic ball game 树状数组+离线处理

    题意:给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止:如果w>x,那么它往左.右儿子的概率都是1.2:如果w<x,那么它往左儿子的 ...

  8. 如何使用SQL Server链接服务器访问DB2 Server

    首先,需要安装Microsoft OLE DB Provider for DB2 下载地址:http://download.microsoft.com/download/B/B/2/BB22098A- ...

  9. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

      开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...

  10. php的session_start

    如果session使用cookie记录,那么在session_start时会设置一个cookie,参数取决于php.ini的设置,当然也可以通过session_set_param在程序里设置.不同站点 ...