美文网首页
mit6.824-(lab1)

mit6.824-(lab1)

作者: canezk | 来源:发表于2017-01-06 13:56 被阅读83次

    mit-6.824 lab1文档
    这部分是实现和理解mapreduce论文,实现简单的mapreduce框架

    主要设计点

    1. 先执行完map再执行reduce
    2. 没有在map之后对同一个key做merge操作

    Part1

    实现doMap和doReduce函数

    根据论文中的流程图:

    1. master调度worker之后(调度是part3要完成的),需要worker完成相应工作
    2. doMap是负责执行实际的map任务,主要输入是jobname,filepath,map函数(part2需要实现的)
    3. doReduce负责执行reduce任务

    Part2

    实现mapF 和 reduceF (word count)
    这里我理解的是,客户端自定义这两个函数,通过反射代理实现调用(java)

    Part3 Part4

    实现调度算法:

    1. 文件已经在master中被分成多个部分,所以这里只需要选择register的 worker来执行部分文件map
    2. 通过channel实现,由于需要复用woker资源,所以map之后返回woker到registerchannel,供master调度
    3. go routine实现并发执行map或者reduce
    4. 容错?schedule函数里面,是一个for循环,直到任务执行成功(所以会循环调度,直到找到可以成功执行的worker)
    5. 操作幂等性:所以上一步,重复执行没关系(因为可能是rpc错误也可能是worker fail了,所以可能会重复执行)

    相关文章

      网友评论

          本文标题:mit6.824-(lab1)

          本文链接:https://www.haomeiwen.com/subject/nxatbttx.html