Hadoop学习(2)——分布式计算框架MapReduce

    技术2022-07-29  81

    一、分布式计算框架MapReduce介绍(计算向数据移动)

    1.1、为什么叫MapReduce

    MR原语:map + reduce(MapTask & ReduceTask输入(格式化k,v)数据map映射成一个中间数据集(k,v)reduce (sql) “相同”的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算 (类似的sql)

    1.2、计算框架MRwordcount 单词统计)

    Hadoop 1.x  -- mr 1.x

    (1)Map:

    读懂数据映射为KV模型并行分布式计算向数据移动

    (2)Reduce:

    数据全量/分量加工(partition/group)Reduce中可以包含不同的key相同的Key汇聚到一个Reduce中相同的Key调用一次reduce方法排序实现key的汇聚

    K,V使用自定义数据类型:

    作为参数传递,节省开发成本,提高程序自由度Writable序列化:使能分布式程序数据交互Comparable比较器:实现具体排序(字典序,数值序等)

    1.3、MRV1角色

    (1)JobTracker

    核心,主,单点调度所有的作业监控整个集群的资源负载

    (2)TaskTracker

    从,自身节点资源管理和JobTracker心跳,汇报资源,获取Task

    (3)Client

    作业为单位规划作业计算分布提交作业资源到HDFS最终提交作业到JobTracker

    弊端:

    JobTracker:负载过重,单点故障资源管理与计算调度强耦合,其他计算框架需要重复实现资源管理不同框架对资源不能全局管理  

    1.4、MRv2:Hadoop  YARN 解耦资源与计算

    (1)角色介绍ResourceManager:

    主,核心集群节点资源管理

    NodeManager:

    与RM汇报资源管理Container生命周期计算框架中的角色都以Container表示

    Container:【节点NM,CPU,MEM,I/O大小,启动命令】:

    默认NodeManager启动线程监控Container大小,超出申请资源额度,kill支持Linux内核的Cgroup

    1.3、分布式资源管理框架YARN:负责集群资源的管理和调度

    YARN:Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的

    核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现

    ResourceManager:负责整个集群的资源管理和调度

    ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等

    优点:YARN的引入,使得多个计算框架可运行在一个集群中

    每个应用程序对应一个ApplicationMaster

    目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等

    (1)MapReduce On YARN

    将MapReduce作业直接运行在YARN上,而不是由JobTracker和TaskTracker构建的MRv1系统中

    用法:

    基本功能模块:

         •YARN:负责资源管理和调度

         •MRAppMaster:负责任务切分、任务调度、任务监控和容错等

         •MapTask/ReduceTask:任务驱动引擎,与MRv1一致

    每个MapRaduce作业对应一个MRAppMaster:

         •MRAppMaster任务调度

         •YARN将资源分配给MRAppMaster

         •MRAppMaster进一步将资源分配给内部的任务

    MRAppMaster容错:

         •失败后,由YARN重新启动

         •任务失败后,MRAppMaster重新申请资源

     

    Processed: 0.010, SQL: 9