当前位置: 首页 > news >正文

【MIT 6.5840/6.824】Lab1 MapReduce

MapReduce

  • MapReduce思想
  • 实现思路
  • 感受

6.5840/6.824 Lab与笔记汇总
本文对应的Lab版本为MIT6.5840-Spring2024的Lab1
本博客只提供思路,不会公开任何代码

本lab耗时约6h,码量约500行

MapReduce思想

MapReduce的思想属于是比较简单的,分为两个阶段:
Map阶段将用户指定的输入文件(通常存放于分布式文件系统中,不过本Lab使用本地文件系统来代替),利用用户编写的map函数,将输入文件拆分为(key,value)形式,输出到若干个中间文件中(这些中间文件存放在map函数所运行的机器中,假设后面运行reduce函数的worker有nReduce个,那么每个运行map函数的worker,就需要把拆分出来的kv对分为nReduce个中间文件来存放,可在key上做hash来划分kv对到对应的中间文件中)
Reduce阶段将中间文件读取出来,并按照key进行排序,然后调用用户提供的reduce函数,将相同key的所有value进行聚合,最后输出到文件中。假设存在nReduce个reduce任务,那么最后会产生nReduce个输出文件。
MapReduce框架中,存在一个coordinator(论文里也叫master),用于协调map任务与reduce任务,同时,需要考虑任务crash的问题(重启任务)。

实现思路

代码主要分为两部分:coordinator.go和worker.go
coordinator主要用于回应worker的rpc请求,分为两种请求(分配任务与任务反馈)。coordinator需要维护每一个任务的状态(可使用map),当收到分配任务的请求时,它找出一个未完成的任务并分配给worker(也是通过rpc),指定该任务的类型,并传输所需参数;当收到worker的任务反馈时,判断任务是否成功,并更新任务状态。
同时,coordinator需要监控worker,如果一个worker超过10s还没有回复,那么认为该worker已经crash了,需要重新分配这个worker所运行的任务。
worker则是打工人,需要不断询问coordinator是否有任务做,对于map任务与reduce任务,进行不同的逻辑处理,按照MapReduce框架的思想进行实现就可以了。

感受

第一次使用go,2小时就可以速成,变量声明与赋值都很方便(像python),但它是类型安全的编译型语言,不会产生运行时的类型错误,写起来非常方便。同时,不像C++一样需要内存管理,因为存在gc机制。
当然,目前看到的只是冰山一角,还需要继续深入学习思考。

http://www.lryc.cn/news/397489.html

相关文章:

  • 如何在 C 语言中进行选择排序?
  • 开源浏览器引擎对比与适用场景:WebKit、Chrome、Gecko
  • DNF客户端使用
  • 打包时提示:Missing Gradle Project Information.或者在加载gradle时出错
  • 基于前馈神经网络 FNN 实现股票单变量时间序列预测(PyTorch版)
  • Scikit Learn - 建模手册(02)--- 数据表示、估算器
  • 【鸿蒙学习笔记】通过用户首选项实现数据持久化
  • LabVIEW航空发动机试验器数据监测分析
  • 快速上手:前后端分离开发(Vue+Element+Spring Boot+MyBatis+MySQL)
  • 产品推荐| 长江存储eMMC嵌入式储存 YMTC EC230
  • 【Linux】IP地址与主机名
  • ros2--colcon
  • PyCharm 2023.3.2 关闭时一直显示正在关闭项目
  • VS2022 git拉取/推送代码错误
  • 【Vue】vue3中使用swipe竖直方向上滚动
  • 搭建基于 ChatGPT 的问答系统
  • C++运行时类型识别
  • 在微信上怎么制作一个商城链接
  • 怎么搭建微信商城
  • 【每日一练】python的类.对象.成员.行为.方法传参综合实例(保姆式教学)
  • Windows 如何打开表情符号面板并使用?
  • 编程语言里的双斜杠:深入解析其神秘面纱
  • 【架构-20】死锁
  • Chat2DB:AI引领下的全链路数据库管理新纪元
  • 数据库的学习(5)
  • v-bind指令——03
  • RedisTemplate使用
  • 文献解读-多组学-第十八期|《整合 WES 和 RNA-Seq 数据以进行短变异发现》
  • 科学技术奖 | 畜禽粪污源头减排关键技术推广与种养循环一体化农业实践
  • 【漏洞复现】锐捷校园网自助服务系统 任意文件读取