You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Dataproc工作流模板能否从失败步骤处重新执行?

GCP Dataproc工作流模板:从失败步骤重启执行的方案

问题描述

我在GCP Dataproc工作流模板中配置了多个存在依赖关系的Pig作业,具体命令如下:

export env=dev
export REGION=us-east4
gcloud dataproc workflow-templates create test1 --region=$REGION

gcloud dataproc workflow-templates set-cluster-selector test1 \
--region=$REGION \
--cluster-labels=goog-dataproc-cluster-uuid=XXXXXXXXXXXXXXXXXXX

gcloud dataproc workflow-templates add-job pig \
--file=FILE, -f gs://dnb-p2d-d-sto-g-inbound/steps/pig_job1.sh \
--region=$REGION \
--step-id=pig_job1 \
--workflow-template=test1
    
gcloud dataproc workflow-templates add-job pig \
--file=FILE, -f gs://dnb-p2d-d-sto-g-inbound/steps/pig_job2.sh \
--region=$REGION \
--step-id=pig_job2 \
--start-after pig_job1 \
--workflow-template=test1

gcloud dataproc workflow-templates add-job pig \
--file=FILE, -f gs://dnb-p2d-d-sto-g-inbound/steps/pig_job3.sh \
--region=$REGION \
--step-id=pig_job3 \
--start-after pig_job2 \
--workflow-template=test1

gcloud dataproc workflow-templates instantiate test1 --region=$REGION

当pig_job2作业因故障失败时,能否无需创建新工作流,直接从该步骤开始执行,后续作业仍按依赖关系运行?

解决方案

Dataproc工作流模板支持从失败步骤重启执行,无需重新创建整个工作流,具体操作步骤如下:

1. 定位失败的工作流执行实例

先通过命令列出目标区域内的工作流执行实例,找到对应失败实例的ID:

gcloud dataproc workflow-template-executions list --region=$REGION

2. 从指定失败步骤重试执行

使用retry命令,指定目标执行实例ID,并通过--start-step参数指定从pig_job2开始执行:

gcloud dataproc workflow-template-executions retry <EXECUTION_ID> \
--region=$REGION \
--start-step=pig_job2

该操作会跳过已成功完成的pig_job1,直接启动pig_job2,后续的pig_job3会按照预设的依赖关系,在pig_job2执行成功后自动运行。

关键注意点

  • 仅当工作流执行实例处于FAILED状态时,才能执行重试操作
  • --start-step指定的步骤必须是该实例中失败或未执行的步骤,且其所有前置依赖步骤(如pig_job1)已成功完成
  • 若需要重新执行多个连续步骤,只需指定最早需要重启的步骤,后续依赖步骤会自动按顺序跟进

内容的提问来源于stack exchange,提问作者Chetan Mane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:16:36