第7章 分布式批处理系统
任务分配与协调、推测执行、检查点与故障恢复。
下载本章 PDF7.1 任务分配
1. 知识点论述
「7.1 任务分配」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:把耗时长的任务拆成子任务,分到多个节点,再汇总。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
3. 知识点详解
- 把耗时长的任务拆成子任务,分到多个节点,再汇总。
- 近数据分配:任务去数据所在的节点,少搬数据。
- 轮询:按固定顺序分给空闲节点。
- DRF:在 CPU、内存等多维资源上,按主导资源占比公平分配,避免一种资源被占满、其他资源闲置。
4. 应用场景
- Yarn/K8s 调度、近数据计算。
- 多维资源公平(DRF)避免某种资源挤占。
- 批处理作业拆分子任务并行。
7.2 任务协调
1. 知识点论述
「7.2 任务协调」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:同步:按步推进,步与步之间交换数据,如 BSP。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
3. 知识点详解
- 同步:按步推进,步与步之间交换数据,如 BSP。
- 异步:任务按自己的进度执行,不等全局节拍。
- 静态计算图:运行前确定,便于优化。
- 动态计算图:运行时按输入构建,更灵活。
4. 应用场景
- BSP 图计算超步、异步参数服务器。
- 静态/动态计算图影响训练与推理框架设计。
- 同步与异步决定收敛与延迟。
7.3 推测执行
1. 知识点论述
「7.3 推测执行」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:慢任务可能拖住整个作业。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
3. 知识点详解
- 慢任务可能拖住整个作业。
- 在另一个节点用同样数据再跑一份,采用先完成的结果。
4. 应用场景
- MapReduce/Spark 对慢任务再启动一份。
- 降低长尾延迟对整体作业完成时间的影响。
- 注意推测执行带来的额外资源开销。
7.4 故障检测与恢复
1. 知识点论述
「7.4 故障检测与恢复」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:规模越大,故障越常见。心跳、历史预测、Gossip 都可用于检测。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
3. 知识点详解
- 规模越大,故障越常见。心跳、历史预测、Gossip 都可用于检测。
- 独立检查点:各自存档,可能出现孤儿消息,连续回滚会变成多米诺效应。
- 协调检查点:Chandy-Lamport 在系统继续运行时记录进程状态和通道消息,得到一致快照。
- 消息日志:记录消息,减少必须回滚的距离;悲观日志在发送前先落盘。
- 前向恢复:不回到旧状态,从当前错误状态设法继续向前。
4. 应用场景
- 检查点与消息日志用于长作业容错。
- Chandy-Lamport 一致快照思想。
- 前向恢复适用于可补偿业务。