GCP Dataproc 集群上的工作流调度

Bal*_*esh 4 hadoop google-cloud-dataproc airflow oozie-workflow google-cloud-composer

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

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

  1. 云作曲家
  2. 具有云计划功能的 Dataproc 工作流模板
  3. 在 Dataproc 自动扩展集群上安装 Oozie

请让我知道哪种选项在性能、成本和迁移复杂性方面最有效。

tix*_*tix 5

所有 3 个选项都是合理的(尽管 #2 Scheduler+Dataproc 是最笨重的)。需要考虑几个问题:您的工作流程运行频率如何,您对未使用的虚拟机的容忍度如何,您的 Oozie 工作流程有多复杂,以及您是否愿意投入时间进行迁移?

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

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