数据岗位面试题更新 2026-08-05

请解释 DolphinScheduler 在执行任务时如何实现容错,以及当任务失败后,其自动恢复的具体机制是怎样的?

数据风险判断技术原理Apache DolphinSchedulerZooKeeper

考察说明

考查对 DolphinScheduler 容错机制和任务失败恢复原理的理解。

回答思路

  1. 【回答框架 1】DolphinScheduler 的容错主要分为 Master 容错和 Worker 容错。Master 负责任务调度和分发,通过 ZooKeeper 实现 HA,当 Master 故障时,备选 Master 会接管任务。Worker 负责执行任务,通过心跳机制向 Master 报告状态,若 Worker 故障,其上的任务会被重新调度到其他 Worker。
  2. 【回答框架 2】任务失败后的自动恢复机制:DolphinScheduler 中任务失败后会根据失败策略进行重试,可配置重试次数和重试间隔。同时,任务实例的状态会被持久化,当调度系统从故障恢复后,会扫描未完成的任务并重新拉起。对于工作流,会从失败节点开始重新执行,或根据用户配置的恢复策略(如从失败节点重跑、从开始重跑等)进行恢复。
  3. 【回答框架 3】容错还体现在数据持久化上:DolphinScheduler 使用数据库和 ZooKeeper 存储关键状态,即使服务重启,也能恢复任务状态,避免重复提交或丢失。
  4. 【关键点 1】Master HA 通过 ZooKeeper 实现,故障自动切换。
  5. 【关键点 2】Worker 故障时,任务会重新调度到其他可用 Worker。
  6. 【关键点 3】任务失败可配置重试策略,包括重试次数和间隔。
  7. 【关键点 4】工作流失败恢复支持从失败节点重跑或从开始重跑。
  8. 【关键点 5】状态持久化到数据库和 ZooKeeper,实现服务重启后的任务恢复。
  9. 【易错点 1】重试机制不保证任务一定成功,需结合幂等设计。
  10. 【易错点 2】网络分区可能造成脑裂,需依赖 ZooKeeper 协调。
  11. 【易错点 3】恢复时注意避免重复执行,需检查任务状态。