Dataproc WorkflowTemplates API 为工作流的管理和执行提供了一种灵活且易用的机制。工作流模板是可重复使用的工作流配置。该模板定义了作业图,其中包含在哪里运行这些作业的信息。
要点:
- 对工作流模板进行实例化会启动工作流。工作流是一种在集群上运行作业的有向无环图 (DAG) 的操作。
- 工作流非常适合复杂的作业流。您可以创建作业依赖项,以便仅在其依赖项顺利完成后才启动作业。
- 当您创建工作流模板时,Dataproc 不会创建集群或将作业提交到集群。在实例化工作流模板时,Dataproc 会创建或选择集群,并在该集群上运行工作流作业。
工作流模板的类型
受管集群
工作流模板可以指定受管集群。工作流会创建一个“临时”集群以运行工作流作业,并在工作流完成时删除此集群。
集群选择器
工作流模板可以指定先前附加到集群的一个或多个用户标签,以此来指定要在其上运行工作流作业的现有集群。工作流将在与所有标签匹配的集群上运行。如果多个集群与所有标签匹配,Dataproc 将选择具有最多 YARN 可用内存的集群来运行所有工作流作业。在工作流结束时,Dataproc 不会删除所选集群。如需了解详情,请参阅搭配使用集群选择器与工作流。
参数化
如果您要使用不同的值多次运行工作流模板,请使用参数,以避免在每次运行前编辑工作流模板:
在模板中定义参数,然后
为每次运行传递不同的参数值。
如需了解详情,请参阅工作流模板的参数化。
内嵌
对工作流进行内嵌实例化的方式包括:使用 gcloud
命令来处理工作流模板 YAML 文件,或者调用 Dataproc InstantiateInline API。(请参阅使用内嵌 Dataproc 工作流)。内嵌工作流不会创建或修改工作流模板资源。
工作流模板用例
重复性任务的自动化。 工作流封装了常用的集群配置和作业。
Transactional fire-and-forget API 交互模型。 工作流模板会替换典型流中涉及的各个步骤,包括:
- 创建集群
- 提交作业
- 轮询
- 删除集群
工作流模板使用单个令牌来跟踪从集群创建到删除的进度,并自动进行错误处理和恢复。它们还简化了 Dataproc 与其他工具(如 Cloud Run functions 和 Cloud Composer)的集成。
支持临时和长期集群。 与运行 Apache Hadoop 相关的常见复杂性是微调和调整集群大小。 临时(受管)集群运行单个工作负载,因此更易于配置。集群选择器可与有效期较长的集群一起使用,重复执行相同的工作负载,而不产生创建和删除集群的摊销成本。
细化的 IAM 安全性。 创建 Dataproc 集群并提交作业需要一些“一刀切”式的 IAM 权限(要么全有、要么全无,无法精细指定)。工作流模板使用针对每个模板的 workflowTemplates.instantiate 权限,并且不依赖于集群或作业权限。