hadoop yarn的原理和工作流程

之前写过 mapreduce的原理和工作流程,包括了一小部分yarn的内容,因为yarn本来就是从mrv1中提出来的,所以二者有千丝万缕的联系,另外,作为一个新手也在梳理的阶段,所以记录的内容或多或少会有混乱或者不精准,还请大家包涵。
结构如下:先简要介绍一下mrv1中的资源管理,然后概述yarn。

一,mrv1
    这个阶段资源管理和计算都是由mapreduce独自完成。

    执行阶段包括:map  sort/shuffle/merge  以及reduce等几个阶段实现
    mapreduce框架负责管理集群资源,调度数以千计的作业以及其他的一些事情。

    包括几个组件:Job tracker   teskTracker管理相应节点的任务。tt与jt通信,并被jt控制。jt负责工作服务器节点的资源管理,跟踪资源使用率/可用率,生命周期,调度作业的各个任务,跟踪进度,以及为任务提供容灾服务。tt根据JT的命令启动清除任务,并且向JT提供任务的状态信息。、

    但是:不能支持非MR应用的需求,可扩展性不高,资源使用率不高(map  reduce节点不能互换)兼容等问题导致了YARN的出现
二 YARN

   YARN的主要想法:将JT的两大主要职能,资源管理,作业的调度/监控分为两个独立的进程: Resource Manager;ApplicationMaster(和每个应用对应)
    其中,RM和每个节点上的NodeManager组成了全新的通用操作系统,以分布式的方式管理应用程序。RM拥有所有应用的资源分配的决定权,对应于每个应用程序的ApplicatinMaster负责与RM协商资源,并和Nodemanager协同工作执行和监控各个任务。

      RM有一个组件:scheduler(可插拔),负责为应用分配组员,纯调度器,不负责监控和状态跟踪,也不保证对失败的task重启,使用了资源 container的抽象概念,
nodeManager负责启动每个系欸但的对应于某个应用程序的Container,监控CPU,内存等资源使用情况,并报告给RM

每个应用的AM负责与Scheduler协商合适额Container,跟踪应用程序的状态,监控他们的进度,
             本质上:一个应用程序可以通过ApplicationMaster请求特定的资源来满足它的资源需求,AM会和RM协商,由Scheduler分配一个Container来相应资源需求,AM必须取走container,并交给Nodemanager,NM会利用相应的资源来启动Container的任务进程。

    先写到这

你可能感兴趣的:(hadoop yarn的原理和工作流程)