关于大数据:大数据复习MapReduce

24次阅读

共计 603 个字符,预计需要花费 2 分钟才能阅读完成。

MR 原语:map + reduce

  • map 数量由什么确定?

    • map — split 与 split 片数量一一对应
    • block 块是真正被切割开的物理块,
    • split 片是在 block 块根底上再切割的逻辑片,由 block 块决定
    • 一个 job 作业中 map 数量与 split 片数量无关
  • map 拿到数据后进行两头集映射 (K,V), 同时生成分区 partition 编号
  • reduce 数量由什么决定?

    • 惯例:一个 K 对应一个 reduce
    • 也能够把多个 K 对应到一个 reduce,然而不能把一个 K 对应多个 reduce(雷同的 K 必须交给同一个 reduce)

  • 先获取 split 片,交给 map(默认 split 片大小 == block 块大小,128M)
  • map 映射成(K,V)两头集后,先将数据写入 内存缓冲区buffer in memory

    • 一次排序:在缓冲区中依照 分区 partition(有几个 reduce 就有几个分区 partition)进行排序,雷同分区的数据放在一起
    • 二次排序:分区内依照 K 进行排序,雷同的 K 放到一起(一个 reduce 可能对应多个 K)
    • 数据压缩 combiner:在 map 端进行一次迭代计算后再发送给 reduce 缩小 reduce 计算量
  • 内存缓冲区写满后,先译写成小文件存到磁盘,当 map 数据处理完之后会造成一堆小文件,

    • 三次排序:泛滥小文件 还要进行排序,并合并成大文件
    • 四次排序:泛滥 map产生的大文件再进行排序,合并成更大的文件
    • 最初合并成的更大的文件交给 reduce 解决

正文完
 0