zoukankan      html  css  js  c++  java
  • 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进行通信,报告自身的状态.

        

  • 相关阅读:
    mysql练习题练习
    test
    jquery获取地址栏参数
    Sql Server获取数据库字段名,并用list显示在jsp页面
    javascript主页面获取子页面元素
    javascript常用方法
    jquery.cookie实现刷新页面复选框选定状态不变
    JDBC操作Oracle、SqlServer根据日期查询
    mysql 5.1升级为5.5方法
    innodb二进制文件相关的参数
  • 原文地址:https://www.cnblogs.com/xiaolong1032/p/4769161.html
Copyright © 2011-2022 走看看