taskId | string | 任务id |
---|---|---|
filename | string | 文件路径 |
content | string | 任务补充参数 |
status | int | 任务状态 |
mapAns | string | map结果文件路径 |
reduceAns | string | reduce结果文件路径 |
Master
- 接收reduceNum以及任务列表
- 创建任务迭代器,当worker请求任务时,分发任务做map并更改状态为mapping
- 收到mapping成功响应,更改状态为mapped
- 当所有任务都在mapping或mapped状态时,worker请求任务时,按照reduceNum切分分配reduce任务,并更改状态为reducing
- 当reduce任务不足数量无法分配时,将当前正在mapping的任务再分配给其他worker(最多分给额外两个)
- 若当前无任务可分配,通知下次请求时间。
Worker
- 请求拿到任务,调用worker对应方法,结束后通知成功,并继续请求任务。