【问题标题】:Workflow scheduling on GCP Dataproc clusterGCP Dataproc 集群上的工作流调度
【发布时间】:2019-12-02 15:31:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: hadoop airflow google-cloud-dataproc google-cloud-composer oozie-workflow


    【解决方案1】:

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

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

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

    【讨论】:

    • Google 是否建议选择在 Dataproc 上安装 Oozie 以应对工作流挑战?我们期待着提升和转变移民的方式。这些是高频复杂的工作流程。此外,由于业务需要,我们需要让集群 24×7 全天候运行。
    • 你能解释一下workflow challenges吗?如果您的目标是提升和转移(从 DC 到 Cloud),那么#3 是显而易见的。我唯一的建议是研究可以避免长时间运行持久集群的方法(例如,您不会获得操作系统或 OSS 更新)。最终,您将不得不升级 Dataproc 映像版本,如果没有自动化,这将非常痛苦。
    • 在运行我们现有的 Oozie 工作流时,有时我们会看到非常高的资源消耗率。因此,我们的处理速度变慢了。有时我们也会看到很多工作卡住了很长时间,这导致需要杀死这些工作并重新运行。我们只是想确保当我们迁移到云时它不会重复。 Dataproc 现已普遍提供自动缩放功能。我相信我们可以创建一个自动扩展集群,这样当 Oozie 工作流高度使用时,它可以自动扩展以适应正在运行的作业。请让我知道你的想法。
    • 这是有道理的。
    • 还有 Oozie to Airflow 转换器:cdn.oreillystatic.com/en/assets/1/event/292/…
    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 2019-01-23
    • 1970-01-01
    • 2019-10-23
    • 2019-01-28
    相关资源
    最近更新 更多