ADF中如何将Spark Job相关活动合并为整体,实现从失败处完整重跑
解决ADF中子管道整体重跑及失败子管道重触发问题
一、将Spark提交子管道作为独立单元重跑
要让子管道在重跑时始终从头执行,而非仅重跑内部失败步骤,可通过以下两种方式实现:
配置Execute Pipeline活动的重跑行为
在父管道调用子管道的Execute Pipeline活动中,找到重跑行为设置,将默认的「仅重跑子管道中失败的活动」改为「始终重跑整个子管道」。这样当你从父管道的失败活动触发重跑时,该子管道会完全从头执行获取密钥、提交作业、监控的全流程,不会跳过之前成功的步骤。给子管道添加强制重跑的参数
给子管道定义一个唯一标识参数(比如RunId,可传入父管道的运行ID或当前时间戳),并让子管道内的所有关键活动(获取密钥、提交作业等)都依赖这个参数。每次重跑时,该参数值会更新,ADF会判定这些活动需要重新执行,而非复用之前的成功状态,从而实现子管道整体重跑。
二、父管道中重跑失败的子管道
当父管道包含多个有依赖关系的Spark子管道时,若部分子管道失败,可按以下方式处理:
直接使用「从失败活动重跑」功能
确保每个Execute Pipeline活动的重跑行为已设置为「始终重跑整个子管道」,此时触发父管道的「从失败活动重跑」,ADF会自动跳过已成功的子管道,仅重跑失败的那个子管道,且该子管道会从头执行全流程。手动触发指定子管道
如果需要更精准的控制,可直接在ADF的管道运行历史中找到失败的子管道实例,手动触发它的全新运行。待该子管道成功后,再回到父管道继续后续流程(若父管道未自动续跑,可手动触发父管道从该子管道之后的活动开始重跑)。
内容的提问来源于stack exchange,提问作者Tommy Tan
相关产品推荐
相关产品推荐

