MapReduce运行原理简述

先将文件进行分割后,进行 map 操作,后面进行 shuffle 操作,分为 map 端 shuffle 和 reduce端 shuffle。
map 输出结果放在缓冲区,当缓存区到达一定阈值时,将其中数据 spill (也就是溢写)到磁盘,然后进行 partition, sort, combine 操作,这样多次 spill 后,磁盘上就会有多个文件,merge 操作将这些文件合并成一个文件。
reduce 端 shuffle 从 map 节点拉取数据文件,如果在内存中放得下,就直接放在内存中,每个 map 对应一块数据,当内存占用量达到一定程度时,启动内存时 merge,把内存中的数据输出到磁盘的一个文件上如果在内存中放不下的话,就直接写到磁盘上。一个 map 数据对应一个文件,当文件数量达到一定阀值时,开始启动磁盘文件 merge,把这些文件合并到一个文件中。最后,把内存中的文件和磁盘上的文件进行全局 merge,形成一个最终端文件,做为 reduce 的输入文件。当然 merge过程中会进行 sort,combine 操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值