• Hadoop学习(二)-MR


    MRHADOOP的核心计算框架。是一个可容错的并行处理集群。

    1. 核心思想

    MR的核心思想是分而治之(本来是基于整体数据的运算,结果将数据数据分割成很多个小的数据集。然后并行计算这些小数据集,最后将每个小数据集的计算结果进行汇总。得到最终的计算结果)。

    整个过程分为Map阶段和Reduce阶段。第一阶段完全并行,互不相干。第二阶段的reduceTask的并发实例也互不相干。但是他数据上依赖上一个阶段(mapTask)并发实例的输出。

    (1) MR的处理流程。根据InPutFormat 将原始数据转成Map<key,Value>,作为MapTask的数输入。通过Map函数将计算结果保存到磁盘。reduceTask拉到各自的本地作为RduceTask的输入。经过RduceTask的计算。通过OutPutFormat格式转换成确定的格式保存到磁盘。

    2. 工作流程

    MR工作流程大致可以分为4部分。分别是输入分片inputFormatMap阶段、reduce阶段和OutPutFormat

    (1) inputFormat阶段 通过inputFormat,将数据切分成Map<key,value> 数据,作为Map节点的输入。默认为TxtInputFormat

    (2) Map阶段.接收<key,value>参数,进行map运算、结果缓存在环形缓冲区、超于阈值(80%),分组(分区),排序combiner,合并溢写磁盘。

    1. 分区:按照Partition进行分区(默认按照HashPartition,对key进行的hashCode%Reduce 获取分区号,前往对应的分区存储数据)。
    2. Sort 排序。同一个分区的不同数据按照key字典排序。默认为升序。
    3. 如果设置有combiner,则在map端进行提前聚合。
    4. 溢写磁盘。

    (3) Reduce阶段获取map数据reduce根据自己的分区号去各个mapTask的节点获取自己对应的分区数据。数据拉到reduce本地,进行归并排序:在reduce节点上对获取的数据合并后重新排序作为reduce的输入。Reduce函数运算进行reduceTask逻辑运算。

    (4) outPutFormat阶段:通过设定的outPutFormat reduce的数据写入磁盘。默认为TextOutPutFormat

    3. shuffle机制

    shuffle 是指MR过程中,map方法之后,reduce方法之前的过程。分为两部分,Map部分和reduce部分。

    (1) shuffleMap部分

    Map处理之后,结果缓存在环形缓冲区中,数据量大于阈值,会准备溢写。会进行分区(按照keyhashcode进行分区)、排序(按照key进行升序)、Combiner【可以没有此环节】溢写文件,map操作完成后,过程中可能产生多个溢写文件。同一个分区多个溢写的文件,合并成一个文件。

    (2) shufflereduce部分

    copy阶段:Reduce 去各个maptesk节点,根据自己的分区号找到当前reduce对应的数据并传递回。归并排序merge阶段合并多个maptask的数据,如果内存不够、溢写磁盘。数据给reduce任务。

    4. 序列化

    为了提高系统性能。高效的序列化机制比较重要。

    (1) 什么是序列化?什么是反序列化?为什么需要序列化?

    序列化是指把内存中的对象转成字节序列的过程。反序列化是指将字节序列转成内存对象的过程。序列化一般有两个场景。内存数据需要保存到磁盘对象需要跨网络传递到其它机器

    (2) Hadoop有自己的序列化机制:writable

    (3) 序列化和反序列化的属性顺序需要完全一致。

    5. 数据压缩

    压缩技术能提高底层数据传输的效率。

    压缩的基本原则:运算密集型job,少用压缩IO密集型job,多用压缩

    比较常用的几种压缩算法:

    Gzip:压缩率比较高,压缩和解压缩时间也比较快。

    Bzip2:压缩率最高,压缩和解压缩时间长。

    Loz

    Snappy

  • 相关阅读:
    docker-compose 命令不存在
    linux安装rabbitmq ssm集成rabbitmq
    tomcat参数错误 服务器400
    无限极分内 自联查询
    图片移入变大 点击图片切换 点击按钮显示图片
    js正则表达式基本书写
    随鼠标移动
    输入电话号码
    添加新句子
    窗口的弹出与关闭
  • 原文地址:https://www.cnblogs.com/maopneo/p/13947997.html
Copyright © 2020-2023  润新知