MIT 6.824 Lab:MapReduce

构建MapReduce库


MIT 6.824 Distributed System

简介

在本实验中,将构建一个MapReduce库,熟悉如何使用Go中编程和构建容错分布式系统。在第一部分中,将编写一个简单的MapReduce程序。在第二部分中,您将编写一个Master,将任务分发给MapReduce的workers,并处理workers的失败

首先从网上获取实验需要的源代码,并熟悉。开始实验之前最好先熟悉一下go语言

接下来的任务就是编写/修改doMapdoReduce。。您还必须在../main/wc.go中编写map和reduce函数。

Part I: Map/Reduce input and output

Map/Reduce实现缺少一些部分。在编写第一个Map/Reduce函数之前,需要修复sequential实现。特别是,我们给你的代码缺少两个关键部分:分割map任务输出的函数,以及收集reduce任务的所有输入的函数。这些任务分别由common_map.go中的doMap()函数和common_reduce.go中的doReduce()函数执行。这些文件中的注释应该指向正确的方向。

为了帮助您确定是否正确实现了doMap()和doReduce(),我们为您提供了一个Go测试套件,用于检查实现的正确性。这些测试在test_test.go文件中实现。
加入参数-v获得测试更多的信息,用于调试

run参数表示测试mapreduce文件夹下test_test.go文件中以Test开头包含Sequential的测试函数,即TestSequentialSingle和TestSequentialMany函数。