GCP Dataproc 集群上的工作流调度

Workflow scheduling on GCP Dataproc cluster

我有一些复杂的 Oozie 工作流要从本地 Hadoop 迁移到 GCP Dataproc。工作流包括 shell 脚本、Python 脚本、Spark-Scala 作业、Sqoop 作业等

我遇到了一些符合我的工作流调度需求的潜在解决方案:

  1. 云作曲家
  2. 带云调度的 Dataproc 工作流模板
  3. 在 Dataproc 自动缩放集群上安装 Oozie

请告诉我哪个选项在性能、成本计算和迁移复杂性方面最有效。

所有 3 个都是合理的选择(尽管 #2 Scheduler+Dataproc 是最笨重的)。需要考虑的几个问题:您的工作流多久执行一次 运行、您对未使用的 VM 的容忍度如何、您的 Oozie 工作流有多复杂以及您是否愿意在迁移上投入时间?

Dataproc 的工作流支持 branch/join 但缺少其他 Oozie 功能,例如作业失败时的处理方式、决策节点等。如果您使用其中任何一个,我什至不会考虑直接迁移到工作流模板并选择 #3 或下面的混合迁移。

混合迁移是一个不错的起点(假设您的集群很少使用)。保留您的 Oozie 工作流程并让 Composer + 工作流程模板使用 Oozie 创建一个集群,使用 init 操作来暂存您的 Oozie XML 文件 + 作业 jars/artifacts,将工作流程中的单个 pig sh 作业添加到通过 CLI 触发 Oozie。