大数据复习-MapReduce

微信扫一扫,分享到朋友圈

大数据复习-MapReduce

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处理

微信扫一扫,分享到朋友圈

大数据复习-MapReduce

mybatisPlus 拦截器执行源码

上一篇

Xray爬虫如何联动到Goby

下一篇

你也可能喜欢

大数据复习-MapReduce

长按储存图像,分享给朋友