首页 > 解决方案 > GCP Dataproc 并行步骤执行

问题描述

我正在使用来自 YAML 文件的工作流模板在 GCP 上创建 dataproc 集群。创建集群后,所有步骤都开始并行执行,但我希望在所有其他步骤完成执行后执行一些步骤。有没有办法做到这一点?

用于集群创建的示例 YAML

jobs:
- pigJob:
    continueOnFailure: true
    queryList:
      queries:
      - sh /ui.sh
  stepId: run-pig-ui
- pigJob:
    continueOnFailure: true
    queryList:
      queries:
      - sh /hotel.sh
  stepId: run-pig-hotel

placement:
  managedCluster:
    clusterName: cluster-abc
    labels:
      data: cluster
    config:
      configBucket: bucket-1
      initializationActions:
        - executableFile: gs://bucket-1/install_git.sh
          executionTimeout: 600s
      gceClusterConfig:
        zoneUri: asia-south1-a
        tags:
          - test
      masterConfig:
        machineTypeUri: n1-standard-8
        diskConfig:
          bootDiskSizeGb: 50
      workerConfig:
        machineTypeUri: n1-highcpu-32
        numInstances: 2
        diskConfig:
          bootDiskSizeGb: 100
      softwareConfig:
        imageVersion: 1.4-ubuntu18
        properties:
          core:io.compression.codec.lzo.class: com.hadoop.compression.lzo.LzoCodec
          core:io.compression.codecs: org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec
      secondaryWorkerConfig:
        numInstances: 2
        isPreemptible: true

用于创建集群的命令

gcloud dataproc workflow-templates instantiate-from-file --file file_name.yaml

gcloud 版本:261.0.0

标签: google-cloud-platformworkflowgoogle-cloud-dataproc

解决方案


您可以prerequisiteStepIds在最终工作流程步骤中使用该列表,以确保它仅在所有先决条件步骤都运行后运行。您可以在OrderedJob 的相应 JSON API 表示中看到预期的结构。

jobs:
- pigJob:
    continueOnFailure: true
    queryList:
      queries:
      - sh /ui.sh
  stepId: run-pig-ui
- pigJob:
    continueOnFailure: true
    queryList:
      queries:
      - sh /hotel.sh
  stepId: run-pig-hotel
- pigJob:
    continueOnFailure: true
    queryList:
      queries:
      - sh /final.sh
  stepId: run-final-step
  prerequisiteStepIds:
    - run-pig-ui
    - run-pig-hotel
...

推荐阅读