mapreduce简介

来源:互联网 发布:mac连不上beats solo3 编辑:程序博客网 时间:2024/05/27 20:35

MapReduce

  • 为什么叫MapReduce

    map和reduce,见名知意MapTask和ReduceTask
  • MR语义

    “相同”的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算
  • 理解

    Map    读懂数据    映射为KV模型    并行分布式    计算向数据移动Reduce    数据全量/分量加工    Reduce中可以包含不同的key    相同的Key汇聚到一个Reduce中    相同的Key调用一次reduce方法        排序实现key的汇聚K,V使用自定义数据类型    作为参数传递,节省开发成本,提高程序自由度    Writable序列化:使能分布式程序数据交互    Comparable比较器:实现具体排序(字典序,数值序等)
  • MapReduce1.x

    JobTracker    核心,主,单点    调度所有的作业    监控整个集群的资源负载TaskTracker    从,自身节点资源管理    和JobTracker心跳,汇报资源,获取TaskClient    作业为单位    规划作业计算分布    提交作业资源到HDFS    最终提交作业到JobTracker弊端:    JobTracker:负载过重,单点故障    资源管理与计算调度强耦合,其他计算框架需要重复实现资源管理    不同框架对资源不能全局管理执行过程    客户端规划清单    jobTracker作为管理进程        负责资源管理和任务调度    TaskTracker和jobTracker有心跳
  • MapReduce2.x

    On YarnYARN:解耦资源与计算    ResourceManager        主,核心        集群节点资源管理    NodeManager        与RM汇报资源        管理Container生命周期        计算框架中的角色都以Container表示    Container:【节点NM,CPU,MEM,I/O大小,启动命令】        默认NodeManager启动线程监控Container大小,超出申请资源额度,kill        支持Linux内核的CgroupMR :    MR-ApplicationMaster-Container    作业为单位,避免单点故障,负载到不同的节点    创建Task需要和RM申请资源(Container)    Task-ContainerClient:    RM-Client:请求资源创建AM    AM-Client:与AM交互执行过程    client和ResourceManager通信,将处理文件信息发给ResourceManager    RM和NM心跳通信,知道哪台服务器资源多,进行任务分配    DataNode服务器开启Container,并在container中开启AppM    appM负责任务调度
  • Yarn

    Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的;    核心思想        核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现    ResourceManager        ResourceManager:负责整个集群的资源管理和调度    ApplicationMaster        ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等优点    YARN的引入,使得多个计算框架可运行在一个集群中    每个应用程序对应一个ApplicationMaster    目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等
原创粉丝点击