mit6.824_Lab1: MapReduce

这里写自定义目录标题

步骤概览

  1. MapReduce 库将用户成据的输入分割成 M 快,每块通常 16-64 MB。
  2. 存在一个 Master, 和多个 Worker。存在 M 个 map 任务和 N 个 reduce 任务等待分配。 Master从worker中选择空闲的worker来完成任务。
  3. 被分配了 map 任务的 worker, 读取对应的 input 中的内容。通过 Map函数,完成对输入内容的解析。解析的结果是一系列的 key/value 对。这些 key/value 对被称为中间值,被暂存在内存中。
  4. 定期的,这些内存中的中间值会经过一个用户自定义的 Pratition 分割函数,分成 N 份,(即 reduce task的数量)。然后写到本地的磁盘中。这些文件的存放位置需要发送给 Master, 以保证能够被正确找到,进行 reduce 任务。
  5. 当一个 worker 被分配了 reduce 任务后,通过远程程序调用,读取 map worker存放在其本地的中间文件。当读取了所有的中间值后,reduce worker 对中间值按照键值对的 key 进行排序。如果中间值太大以至于内存容纳不下,那么,一个可能就需要一个外部的排序。 reduce worker 重复迭代排序后的中间值。
  6. reduce worker接下来对中间值经过用户自定义的 Reduce 来处理。得到一个 output 文件。
  7. 当所有的 Map 和 Reduce完成后,程序正常退出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值