前言
最近的 ddl 属实有些密集,在 ddl 的夹缝中艰巨地实现了 Lab1…
因为对 Go 的语法还是不太纯熟,最初实现还是借鉴了很多 sample。心愿之后的 lab 能够齐全独立地实现吧
具体的代码我挂在了 GitHub 上。
工作形容
Lab1 次要是实现分布式的 MapReduce demo,其中具备 worker 和 coordinator 两种角色。
worker 负责并行地进行 Map 或 Reduce 工作,coordinator 负责在 worker 申请或提交工作时进行解决,并设置超时工夫(通常为 10 秒),查看各 worker 执行工作状况。
如果一个 worker 在规定工夫内未实现工作,coordinator 会在其余 worker 申请工作时,将该工作将调配给其余 worker。
可能会踩的坑
测试脚本中的 timeout 指令和 wait - n 指令找不到的问题
这是因为 Mac 自带的 Bash 版本过老,大家能够用 brew install bash 来装置新版本的 bash。
批改默认 bash 如同比拟麻烦,我是间接在 GoLand 中配置了新 bash 的门路,通过 GoLand 去 run 这个脚本