在 dataproc/gcp 中顺序执行多个 spark 作业
Sequential execution of multiple spark jobs in dataproc / gcp
我想在 gcp 中依次启动多个 spark 作业,例如
gcloud dataproc jobs submit spark file1.py
gcloud dataproc jobs submit spark file2.py
...
以便其中一个作业的执行恰好在前一个作业的执行完成时开始。
有什么办法吗?
这可以使用 Dataproc Workflows templates
来完成
此工作流将创建和删除集群作为工作流的一部分。
您可以按照以下步骤创建工作流:
- 创建您的工作流模板
export REGION=us-central1
gcloud dataproc workflow-templates create workflow-id \
--region $REGION
- 设置将用于作业的 Dataproc 集群类型
gcloud dataproc workflow-templates set-managed-cluster workflow-id \
--region $REGION \
--master-machine-type machine-type \
--worker-machine-type machine-type \
--num-workers number \
--cluster-name cluster-name
- 将作业作为步骤添加到您的工作流程中
gcloud dataproc workflow-templates add-job pyspark gs://bucket-name/file1.py \
--region $REGION \
--step-id job1 \
--workflow-template workflow-id
第二个作业需要参数 --start-after
以确保它在第一个作业之后运行。
gcloud dataproc workflow-templates add-job pyspark gs://bucket-name/file2.py \
--region $REGION \
--step-id job2 \
--start-after job1 \
--workflow-template workflow-id
- 运行工作流程
gcloud dataproc workflow-templates instantiate template-id \
--region $REGION \
我想在 gcp 中依次启动多个 spark 作业,例如
gcloud dataproc jobs submit spark file1.py
gcloud dataproc jobs submit spark file2.py
...
以便其中一个作业的执行恰好在前一个作业的执行完成时开始。
有什么办法吗?
这可以使用 Dataproc Workflows templates
来完成此工作流将创建和删除集群作为工作流的一部分。
您可以按照以下步骤创建工作流:
- 创建您的工作流模板
export REGION=us-central1
gcloud dataproc workflow-templates create workflow-id \
--region $REGION
- 设置将用于作业的 Dataproc 集群类型
gcloud dataproc workflow-templates set-managed-cluster workflow-id \
--region $REGION \
--master-machine-type machine-type \
--worker-machine-type machine-type \
--num-workers number \
--cluster-name cluster-name
- 将作业作为步骤添加到您的工作流程中
gcloud dataproc workflow-templates add-job pyspark gs://bucket-name/file1.py \
--region $REGION \
--step-id job1 \
--workflow-template workflow-id
第二个作业需要参数 --start-after
以确保它在第一个作业之后运行。
gcloud dataproc workflow-templates add-job pyspark gs://bucket-name/file2.py \
--region $REGION \
--step-id job2 \
--start-after job1 \
--workflow-template workflow-id
- 运行工作流程
gcloud dataproc workflow-templates instantiate template-id \
--region $REGION \