• Hadoop


       一  YARN的启动流程          
                                                         

                                                                                   YARN 启动流程

       
      1.提交应用及其使用到的资源
        用户向YARN中(RM)提交应用程序,当中包含ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。client将应用程序所需的文件资源(外部字典、JAR包、二进制文件等)提交到 HDFS.

      2.启动ApplicationMaster
          ResourceManager为该应用程序分配第一个Container。并与相应的NodeManager通信。要求它在这个Container中启动应用程序的ApplicationMaster。

    ApplicationMaster与ResouceManager通信,以请求和获取资源。

    ApplicationMaster获取到资源后,与相应的NodeManager通信以启动任务。

    假设该应用程序第一次在给节点上启动任务,则NodeManager首先从HDFS上下载文件缓存到本地,然后启动该任务。


         注:分布式缓存并非将文件缓存到集群中各个结点的内存中,而是将文件换到各个结点的磁盘上,以便运行任务时候直接从本地磁盘上读取文件。

      3.注冊应用
       ApplicationMaster首先向ResourceManager注冊,表明自己启动成功。这样用户能够直接通过ResourceManage查看应用程序的执行状态。然后它将为各个任务申请资源,并监控它的执行状态,直到执行结束,即反复步骤4~7。


      4.为任务申请资源
       ApplicationMaster採用轮询的方式通过RPC协议向ResourceManager申请和领取资源。


       5.与NM通信启动各个任务
        一旦ApplicationMaster申请到资源后。ApplicationMaster就会将启动命令交给NodeManager,要求它启动任务。启动命令里包括了一些信息使得Container能够与Application Master进行通信。

      6.NM启动任务
         NodeManager为任务设置好执行环境(包含环境变量、JAR包、二进制程序等)后。将任务启动命令写到一个脚本中,并通过执行该脚本启动任务(Container)。

      7.运行任务
         在Container内执行用户提交的代码,各个Container通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的执行状态,从而能够在任务失败时又一次启动任务。


      8.任务状态查询
          在应用程序执行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前执行状态。

      9.执行完成
         应用程序执行完毕后,ApplicationMaster向ResourceManager注销并关闭自己。

    二 AM与RM的具体交互

         1.用户向YARN ResourceManager提交应用程序,RM收到提交申请后。先向资源调度器申请用以启动AM 的资源,待申请到资源后,再由ApplicationMasterLauncher与相应的NodeManager通信,从而启动应用程序的ApplicationMaster.
         2.ApplicationMaster启动完毕后,ApplicationMasterLaucher会通过事件的形式,将刚刚启动的Application Master注冊到AMLiveMonitor,以启动心跳监控。
         3.ApplicationMaster启动后,先向ApplicatinMaterService注冊。并将自己所在host、port号等信息汇报给它。

         4.AM执行过程中,周期性地向ApplicationMaserService回报心跳信息(信息中包括想要申请的资源描写叙述)。
         5. ApplicationMasterService每次收到ApplicationMaster心跳信息好后,将通知AMLivelinessMonitor更新应用程序的最新回报心跳的时间。
         6.应用程序执行完毕后,AM向AMService发送请求,注销自己。
         7.AMService收到注销请求后,标注应用程序执行状态完毕。同一时候通知AMLivelinessMonitor移除对它的心跳监控。

    三 小结

          当用户向YARN中提交一个应用程序后,YARN将分两个阶段执行该应用程序:第一个阶段是启动
    ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个执行过程。直到运
    行完毕

  • 相关阅读:
    oracle 查询表空间
    oracle 创建表空间
    webservice SOA
    WCF初识
    win10远程桌面身份验证错误,要求的函数不受支持
    一台主机两台显示器实现方式学习
    实现Http Server学习
    lucene索引和查询文件系统存储
    java 大文件输入方式FileOutputStream
    tar
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7122956.html
Copyright © 2020-2023  润新知