第7章 分布式批处理系统

任务分配与协调、推测执行、检查点与故障恢复。

下载本章 PDF

7.1 任务分配

1. 知识点论述

「7.1 任务分配」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:把耗时长的任务拆成子任务,分到多个节点,再汇总。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。

2. 视频教程

Hadoop、YARN 与数据切分

在B站观看

3. 知识点详解

  1. 把耗时长的任务拆成子任务,分到多个节点,再汇总。
  2. 近数据分配:任务去数据所在的节点,少搬数据。
  3. 轮询:按固定顺序分给空闲节点。
  4. DRF:在 CPU、内存等多维资源上,按主导资源占比公平分配,避免一种资源被占满、其他资源闲置。

4. 应用场景

  • Yarn/K8s 调度、近数据计算。
  • 多维资源公平(DRF)避免某种资源挤占。
  • 批处理作业拆分子任务并行。

7.2 任务协调

1. 知识点论述

「7.2 任务协调」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:同步:按步推进,步与步之间交换数据,如 BSP。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。

2. 视频教程

MapReduce 工作原理:阶段之间如何交接

在B站观看

3. 知识点详解

  1. 同步:按步推进,步与步之间交换数据,如 BSP。
  2. 异步:任务按自己的进度执行,不等全局节拍。
  3. 静态计算图:运行前确定,便于优化。
  4. 动态计算图:运行时按输入构建,更灵活。

4. 应用场景

  • BSP 图计算超步、异步参数服务器。
  • 静态/动态计算图影响训练与推理框架设计。
  • 同步与异步决定收敛与延迟。

7.3 推测执行

1. 知识点论述

「7.3 推测执行」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:慢任务可能拖住整个作业。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。

2. 视频教程

YARN 任务推测执行

在B站观看

3. 知识点详解

  1. 慢任务可能拖住整个作业。
  2. 在另一个节点用同样数据再跑一份,采用先完成的结果。

4. 应用场景

  • MapReduce/Spark 对慢任务再启动一份。
  • 降低长尾延迟对整体作业完成时间的影响。
  • 注意推测执行带来的额外资源开销。

7.4 故障检测与恢复

1. 知识点论述

「7.4 故障检测与恢复」是《分布式计算系统》并行批处理部分的核心知识点。把大批量计算拆开调度,并在失败时可靠恢复。本知识点首先把握:规模越大,故障越常见。心跳、历史预测、Gossip 都可用于检测。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。

2. 视频教程

Spark 的 cache 与 checkpoint

在B站观看

3. 知识点详解

  1. 规模越大,故障越常见。心跳、历史预测、Gossip 都可用于检测。
  2. 独立检查点:各自存档,可能出现孤儿消息,连续回滚会变成多米诺效应。
  3. 协调检查点:Chandy-Lamport 在系统继续运行时记录进程状态和通道消息,得到一致快照。
  4. 消息日志:记录消息,减少必须回滚的距离;悲观日志在发送前先落盘。
  5. 前向恢复:不回到旧状态,从当前错误状态设法继续向前。

4. 应用场景

  • 检查点与消息日志用于长作业容错。
  • Chandy-Lamport 一致快照思想。
  • 前向恢复适用于可补偿业务。

本章练习(12 题)

1. 近数据分配是指?

2. 轮询分配是?

3. DRF 关心的是?

4. BSP 这种同步协调要求?

5. 异步协调的特点是?

6. 静态计算图和动态计算图的差别是?

7. 推测执行针对的是?

8. 推测执行的做法是?

9. 推测执行不适合?

10. 独立检查点的风险是?

11. Chandy-Lamport 的目标是?

12. 悲观消息日志是指?