zoukankan      html  css  js  c++  java
  • 014 再次整理关于hadoop中yarn的原理及运行

    一:对yarn的理解

    1.关于yarn的组成

      大约分成主要的四个。

      Resourcemanager,Nodemanager,Applicationmaster,container

    2.Resourcemanager(RM)的理解

      RM是全局资源管理器,负责整个系统的资源管理和分配。

      主要由两个组件组成:调度器和应用程序管理器(ASM)

      调度器:根据容量,队列等限制条件,将系统中的资源分配给各个正在运行的应用程序,不负责具体应用程序的相关工作,比如监控或跟踪状态

      应用程序管理器:负责管理整个系统中所有应用程序

    3.Applicationmaster(AM)

      用户提交的每个应用程序均包含一个AM

      AM的主要功能:

        (1)与RM调度器协商以获取资源(用Container表示)

        (2)将得到的任务进一步分配给内部的任务

        (3)与NM通信以自动/停止任务

        (4)监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务

      当前YARN自带了两个AM实现:

        一个用于演示AM编写方法的实例程序distributedshell

        一个用于Mapreduce程序---MRAppMaster

      其他的计算框架对应的AM正在开发中,比如Spark

    4.Nodemanager

      NM是每个节点上的资源和任务管理器

        (1)定时向RM汇报本节点上的资源使用情况和各个Container的运行状态

        (2)接收并处理来自AM的Container启动/停止等各种要求

      

    5.container  

      Container是YARN中的资源抽象,它封装了某个节点上的多维度资源

          YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源

    二:mapreduce在yarn上运行

    1.流程图

      

    2.流程

      (1):由客户端提交一个应用,由RM的ASM接受应用请求

      提交过来的应用程序包括哪些内容:

      a:ApplicationMaster

      b:启动Applicationmaster的命令

      c:本身应用程序的内容

      (2):提交了三部分内容给RM,然后RM找NodeManager,然后Nodemanager就启用Applicationmaster,并分配Container

        接下来我们就要执行这个任务了,

      (3):但是执行任务需要资源,所以我们得向RM的ASM申请执行任务的资源(它会在RM这儿注册一下,说我已经启动了,注册了以后就可以通过RM的来管理,我们用户也可以通过RM的web客户端来监控任务的状态)ASM只是负责APplicationMaster的启用

      (4)我们注册好了后,得申请资源,申请资源是通过第四步,向ResourceScheduler申请的

      (5)申请并领取资源后,它会找Nodemanager,告诉他我应经申请到了,然后Nodemanager判断一下,

      (6)知道他申请到了以后就会启动任务,当前启动之前会准备好环境,

      (7)任务启动以后会跟APplicationmaster进行通信,不断的心跳进行任务的汇报。

      (8)完成以后会给RM进行汇报,让RSM撤销注册。然后RSM就会回收资源。当然了,我们是分布式的,所以我们不会只跟自己的Nodemanager通信。也会跟其他的节点通信。

    三:参考

    1.连接

      主要参考文章

      http://blog.csdn.net/wust__wangfan/article/details/48650889

        

  • 相关阅读:
    为什么用strlcpy取代strncpy
    linux系统调用和库函数调用的区别
    VC、PE和天使投资是什么意思?有什么区别?
    AWS使用心得:当初我曾错过的那些宝贵经验
    bzoj 2208: [Jsoi2010]连通数
    android学习笔记(5)Activity生命周期学习
    Nginx 进程间通信
    手写一个节点大小平衡树(SBT)模板,留着用
    JavaFX学习之道:JavaFX之TableView
    Docker 命令行和后台參数
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6737308.html
Copyright © 2011-2022 走看看