您可以通过以下步骤设置和运行工作流:
- 创建工作流模板
- 配置受管(临时)集群或选择现有集群
- 添加作业
- 对模板进行实例化以运行工作流
创建模板
gcloud 命令
运行以下 command
创建 Dataproc 工作流模板资源。
gcloud dataproc workflow-templates create template-id (such as "my-workflow") \ --region=region
REST API
请参阅 workflowTemplates.create。已完成的 WorkflowTemplate 通过 workflowTemplates.create 请求提交。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
配置或选择集群
Dataproc 可以为您的工作流或现有集群创建和使用新“受管”集群。
现有集群:请参阅搭配使用集群选择器与工作流为您的工作流选择一个现有集群。
受管集群:您必须为工作流配置受管集群。Dataproc 将创建该新集群以运行工作流作业,然后在工作流结束时删除该集群。
您可以使用gcloud
命令行工具或 Dataproc API 为工作流配置受管集群。gcloud 命令
使用从 gcloud dataproc cluster create 继承的标记来配置受管集群(工作器数量、主实例/工作器机器类型等)。Dataproc 会为集群名称添加后缀以确保唯一性。
gcloud dataproc workflow-templates set-managed-cluster template-id \ --region=region \ --master-machine-type=machine-type \ --worker-machine-type=machine-type \ --num-workers=number \ --cluster-name=cluster-name
REST API
请参阅 WorkflowTemplatePlacement.ManagedCluster。此字段是使用 workflowTemplates.create 或 workflowTemplates.update 请求提交的已完成的 WorkflowTemplate 的一部分。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
将作业添加到模板
除非您指定一个或多个作业依赖项,否则所有作业将并发运行。作业的依赖性表示为:在最终作业开始之前,一系列其他作业必须成功完成。您必须为每项作业提供 step-id
。该 ID 在工作流中必须具有唯一性,但不必具有全局唯一性。
gcloud 命令
使用从 gcloud dataproc jobs submit 继承的作业类型和标记来定义要添加到模板的作业。您可以选择使用 ‑‑start-after job-id of another workflow job
标志,以使该作业在工作流中的其他一个或多个作业完成后启动。
示例:
将 Hadoop 作业“foo”添加到“my-workflow”模板中。
gcloud dataproc workflow-templates add-job hadoop \ --region=region \ --step-id=foo \ --workflow-template=my-workflow \ -- space separated job args
将作业“bar”添加到“my-workflow”模板中,该作业将在工作流作业“foo”成功完成后运行。
gcloud dataproc workflow-templates add-job job-type \ --region=region \ --step-id=bar \ --start-after=foo \ --workflow-template=my-workflow \ -- space separated job args
将另一个作业“baz”添加到“my-workflow”模板中,该作业将在“foo”和“bar”作业成功完成后运行。
gcloud dataproc workflow-templates add-job job-type \ --region=region \ --step-id=baz \ --start-after=foo,bar \ --workflow-template=my-workflow \ -- space separated job args
REST API
请参阅 WorkflowTemplate.OrderedJob。此字段是使用 workflowTemplates.create 或 workflowTemplates.update 请求提交的已完成的 WorkflowTemplate 的一部分。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
运行工作流
在工作流模板的实例化过程中,系统将运行由模板定义的工作流。支持对一个模板执行多个实例化过程 — 您可多次运行一个工作流。
gcloud 命令
gcloud dataproc workflow-templates instantiate template-id \ --region=region
该命令返回操作 ID,您可以使用该 ID 来跟踪工作流状态。
例如:gcloud beta dataproc workflow-templates instantiate my-template-id \ --region=region ... WorkflowTemplate [my-template-id] RUNNING ... Created cluster: my-template-id-rg544az7mpbfa. Job ID teragen-rg544az7mpbfa RUNNING Job ID teragen-rg544az7mpbfa COMPLETED Job ID terasort-rg544az7mpbfa RUNNING Job ID terasort-rg544az7mpbfa COMPLETED Job ID teravalidate-rg544az7mpbfa RUNNING Job ID teravalidate-rg544az7mpbfa COMPLETED ... Deleted cluster: my-template-id-rg544az7mpbfa. WorkflowTemplate [my-template-id] DONE
REST API
请参阅 workflowTemplates.instantiate。控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
工作流作业失败
如果工作流中的任何作业发生故障,都会导致工作流失败。 Dataproc 将指示所有并发执行的作业失败,并阻止后续作业启动,以便缓解失败造成的影响。
监控和列出工作流
gcloud 命令
监控工作流:
gcloud dataproc operations describe operation-id \ --region=region
注意:使用 gcloud dataproc workflow-templates instantiate
实例化工作流时,系统会返回 operation-id(请参阅运行工作流)。
列出工作流状态:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"
REST API
要监控工作流,请使用 Dataproc operations.get API。
要列出正在运行的工作流,请使用具有标签过滤条件的 Dataproc operations.list API。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
终止工作流
您可以使用 Google Cloud CLI 或调用 Dataproc API 结束工作流。
gcloud 命令
gcloud dataproc operations cancel operation-id \ --region=region
gcloud dataproc workflow-templates instantiate
实例化工作流时返回的操作 ID(请参阅运行工作流)。REST API
请参阅 operations.cancel API。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
更新工作流模板
更新不会影响正在运行的工作流。新模板版本仅适用于新工作流。
gcloud 命令
通过发出引用现有工作流模板 ID 的新 gcloud workflow-templates
命令可以更新工作流模板:
REST API
要使用 REST API 更新模板,请执行以下操作:
- 调用 workflowTemplates.get,其可返回当前模板,其中
version
字段填充了当前服务器版本。 - 对提取的模板进行更新。
- 使用更新后的模板调用 workflowTemplates.update。
控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。
删除工作流模板
gcloud 命令
gcloud dataproc workflow-templates delete template-id \ --region=region
注意:使用 gcloud dataproc workflow-templates instantiate
实例化工作流时,系统会返回 operation-id(请参阅运行工作流)。
REST API
请参阅 workflowTemplates.delete。控制台
您可以在 Google Cloud Console 的 Dataproc 工作流页面中查看现有工作流模板和实例化的工作流。