Hadoop基于Yarn的MapReduce架构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/someby/article/details/82947095

    基于Yarn的MapReduce架构

    1.MapReduce程序是基于Mapper和Reducer两大阶段构成的,其中Mapper是把一个计算任务分成很多小任务进行并行计算,Reducer是做最后的统计工作的;
    2.Hadoop2.x开始MapReduce的运行是基于Yarn进行的:
   
    3.当ResourceManager接受到Client提交程序的请求的时候,会根据集群资源的状况在每个NodeManager所在的节点上命令Nodemanager来启动该程序的第一个Container,该Container(Container是CPU、内存资源的封装)就是该程序ApplicationMaster,负责该程序的任务调度的执行过程,ApplicationMaster转过来向ResourceManager注册自己,注册之后会向ResourceManager申请具体的Container计算资源,如果资源(Container)充足,可以一次分配,如果资源(Container)不够,ResourceManager发现有可用资源就会再次分配;

    
    4.如何知道一个程序中的ApplicationMaster需要多少个Container?ApplicationMaster在启动的时候会运行程序的main方法,该方法中会有数据的输入和相关的配置,通过这些内容就可以知道需要多少Container;
    5.MapReduce运行在Yarn上的总结
        主从结构
            主节点,只有一个:ResourceManager
            控制节点,每一个job都有一个MRAppMaster
            从节点,有多个:YarnChild
        ResourceManager负责:
            负责每一个job执行的任务调度
            把job分给MRAppMaster执行
            监控MRAPPMaster的执行情况
        MRAppMaster负责
            负责每一个job执行的任务调度
            把job分给YarnChild执行
            监控YarnChild的执行情况
        YarnChild负责
            执行MRAppMaster分配的计算任务
    6.Hadoop中的MapReduce中的MRAppMaster相当于Spark中的Driver,Hadoop MapReduce中的YarnChild相当于Spark中的CoarseGrainedExecutorBackend;

猜你喜欢

转载自blog.csdn.net/someby/article/details/82947095