Dataproc 工作流模板概览

Dataproc WorkflowTemplates API 为工作流的管理和执行提供了一种灵活且易用的机制。工作流模板是可重复使用的工作流配置。该模板定义了作业图,其中包含在哪里运行这些作业的信息。

要点:

  • 对工作流模板进行实例化会启动工作流。工作流是运行 有向无环图 (DAG) 一个集群上的作业
    • 如果工作流使用受管集群,则会创建集群,运行作业,然后在作业完成时删除集群。
    • 如果工作流使用集群选择器,则它会在选定的现有集群上运行作业。
  • 工作流非常适合复杂的作业流。您可以创建作业依赖项,以便仅在其依赖项顺利完成后才启动作业。
  • 在 Dataproc 创建工作流模板时 不会创建集群或向集群提交作业。 Dataproc 可创建或选择集群并在这些集群上运行工作流作业 在工作流模板实例化后创建集群。

工作流模板的种类

受管集群

工作流模板可以指定受管集群。工作流将创建一个 “临时”运行工作流作业,然后在部署 工作流。

集群选择器

工作流模板可以指定要在其上运行工作流的现有集群 来为作业指定一个或多个用户标签 先前已挂接到集群的凭据工作流将在 所有标签都匹配的类别。如果多个集群匹配 Dataproc 会选择 YARN 可用内存,用于运行所有工作流作业。在工作流程结束时 Dataproc 不会删除所选集群。请参阅 在工作流中使用集群选择器

参数化

如果使用不同的值多次运行工作流模板,请使用 参数来避免修改每次运行的工作流模板:

  1. 在模板中定义参数,然后

  2. 为每次运行的参数传递不同的值。

如需了解详情,请参阅工作流模板的参数化

内嵌

对工作流进行内嵌实例化的方式包括:使用 gcloud 命令来处理工作流模板 YAML 文件,或者调用 Dataproc InstantiateInline API。(请参阅使用内嵌 Dataproc 工作流)。内嵌工作流不会创建或修改工作流模板资源。

工作流模板用例

  • 重复性任务的自动化。 工作流封装了常用的集群配置和作业。

  • 事务性即发即弃 API 交互模型。工作流模板 取代了典型流程中涉及的步骤,其中包括:

    1. 创建集群
    2. 提交作业
    3. 轮询
    4. 删除集群

    工作流模板使用单个令牌来跟踪集群创建的进度 并自动执行错误处理和恢复。还简化了 将 Dataproc 与其他工具(例如 Cloud Functions)相集成 和 Cloud Composer

  • 支持临时和长期集群。 与运行 Apache Hadoop 相关的常见复杂性是微调和调整集群大小。 临时(受管)集群运行单个工作负载,因此更易于配置。集群选择器可用于 运行时间较长的集群来重复执行相同的工作负载 而无需支付创建和删除集群的摊销费用。

  • 细化的 IAM 安全性。 创建 Dataproc 集群并提交作业需要一些“一刀切”式的 IAM 权限(要么全有、要么全无,无法精细指定)。工作流模板使用针对每个模板的 workflowTemplates.instantiate 权限,并且不依赖于集群或作业权限。