MIT 6.824 Day2

w1

MapReduce

MapReduce

Lab 1

Part 1: Map/Reduce input and output
1. 完成sequential implementation
    1.1 function that divides up the output of a map task(doMap() function in common_map.go)
    1.2 function that gathers all the inputs for a reduce task(doReduce() function in common_reduce.go)

2. 测试方法
    2.1 set debugEnabled = true in common.go
    2.2 cd 6.824/src/mapreduce; go test -v -run Sequential
Part 2: Single-worker word count
Input Files: pg-*.txt
Map/Reduce Files: mrtmp.wcseq-<MapTaskNumber>-<ReduceTaskNumber>
Merge Files: mrtmp.wcseq-res-<ReduceTaskNumber>


1. 完成 main/wc.go 中的 mapF() 和 reduceF() 函数
    1.1 mapF, Input包含文件名(filename),以及该文件的内容(contents);Output是key为单词,value为1的结构的切片
        func mapF(filename string, contents string) (kvResult []mapreduce.KeyValue)
        
    1.2 ReduceF,Input是key(单词),以及该单词的出现情况的切片,比如["1", "1",...],Output是该单词出现的总数
        func reduceF(key string, values []string) string 


2. 测试方法
    cd 6.824/src/main
    go run wc.go master sequential pg-*.txt
Part 3: Distributing MapReduce tasks
1. complete a version of MapReduce that splits the work over a set of worker threads that run in parallel on multiple cores.
    1.1 implement schedule() in mapreduce/schedule.go

2. 测试方法
    go test -run TestParallel
    go test -race -run TestParallel
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 在 lab1 中我们将建立一个 MapReduce 库,学习如何使用 Go 建立一个容错的分布式系统。在 P...
    找不到工作阅读 8,515评论 5 1
  • 今天我想说的关键词是摆脱、逃离,摆脱什么?摆脱束缚,逃离什么?逃离现实,但当风筝真的脱离了引线就是自由了吗...
    时强阅读 4,996评论 4 9
  • 之前写了一篇多次被骗的文章,可以看到我的愚昧、贪婪让我损失了不少钱。今天这篇我来换个角度,来讲讲最近一个月自己通过...
    yinyuanlin阅读 9,580评论 1 3

友情链接更多精彩内容