Yarn通信过程
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通信过程的更多相关文章
- 网络中两台主机的通信过程(TCP)
两台主机通信有两种情况:1.在同一网段中 2.不在同一网段中 (1.)在同一网段的通信过程 主机在应用层上的操作: TCP/IP协议上tcp的端口对应的各种应用程序,客户机要访问某个应用程序就会要求打 ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- 【转】wpa_supplicant与wpa_cli之间通信过程
[转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...
- ZLL本地局域网通信过程
Interface_srpcserver -----以灯的状态操作位例 网关与客户端通过Socket API通信,Socket API在socket_server.c中实现,socket_server ...
- SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程
相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868.shtml http://www.gxu.edu.cn/college ...
- WCF入门教程二[WCF应用的通信过程]
一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...
- Portlet 通信过程详解
Portlet 通信过程详解 在 Portal 的开发过程中,Theme 与 portlet 之间的通信,以及 portlet 之间的通信是开发人员常常遇到的问题.通常 Portlet 之间需要能够互 ...
- WCF通信过程
无废话WCF入门教程二[WCF应用的通信过程] 一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Ser ...
- Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程
设备控制软件编程涉及到的基本通信方式主要有TCP/IP与串口,用到的数据通信协议有Fins与ModBus. 更高级别的通信如.net中的Remoting与WCF在进行C/S架构软件开发时会采用. 本篇 ...
随机推荐
- [2014-03-13 08:46:42 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace. 问题提示 ...
- AOJ - 0009 Prime Number (素数筛法) && AOJ - 0005 (求最大公约数和最小公倍数)
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34870 求n内的素数个数. /* ********************* ...
- Hadoop学习过程知识积累
1. Hadoop 64位centos 下编译 hadoop 2.6.0 源码 2. 学习问题汇总 hadoop多次格式化后,导致datanode启动不了 3. HDFS Hadoop中NameNod ...
- Tomcat遇到”Error listenerStart”或”Error filterStart”问题且无详细日志时的log配置.
昨天部署web应用到Tomcat之后,无法成功启动,并且控制台没有详细的错误信息,顶多就两行提示信息,例如:严重: Error listenerStart严重: Context [/lizongbo] ...
- 五款好玩又好用的Linux网络测试和监控工具
五款好玩又好用的Linux网络测试和监控工具 [51CTO精选译文]在这篇介绍几款Linux网络测试实用工具的文章中,我们使用Bandwidthd.Speedometer.Nethogs.Darkst ...
- C#中的lock关键字;就是lock住一个大家都共同访问的(静态static的)东东就行了
public class ChatService : IChat //继承IChat接口或者说IChat的实现类 { //定义一个静态对象用于线程部份代码块的锁定,用于lock操作 private s ...
- [反汇编练习] 160个CrackMe之026
[反汇编练习] 160个CrackMe之026. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...
- 13行代碼開發出来的PHP框架[转]
<?PHP /** PHP極簡框架 交流: QQ群: 223494678 http://7di.net 用法 http://URL http://URL/hello http://URL/sev ...
- hibernate中使用fetch来决策性能方案
什么时候用子查询,或者连接查询 一般多个数据的对应用子查询,单一行的数据用连接 (若要查询每个学生分别学了什么课程 ,若要fetch=join.fetch=select) 则是这种情况 Hiberna ...
- [转载] FFMpeg的码率控制
mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在google上search了一下,这方面 ...