我有一些复杂的Oozie工作流程,可以从本地Hadoop迁移到GCP Dataproc。工作流程包括shell脚本,Python脚本,Spark-Scala作业,Sqoop作业等。
我遇到了一些潜在的解决方案,这些解决方案结合了我的工作流程计划需求:
请让我知道在性能,成本和迁移复杂性方面哪种选择最有效。
所有3个都是合理的选择(尽管#2 Scheduler + Dataproc最笨拙)。需要考虑几个问题:您的工作流多长时间运行一次,您对未使用的VM的容忍度如何,您的Oozie工作流有多复杂,以及您愿意花多少时间进行迁移?
Dataproc的工作流支持分支/联接,但缺少其他Oozie功能,例如对工作失败,决策节点等的处理。如果使用其中任何一个,我什至都不会考虑直接迁移到工作流模板,而是选择其中一个#3或下面的混合迁移。
一个很好的起点是混合迁移(这是假设您的群集很少使用)。保持您的Oozie工作流程,并让Composer +工作流程模板与Oozie创建集群,使用init操作来暂存Oozie XML文件+作业jar /工件,从工作流中添加单个pig sh
作业以通过CLI触发Oozie。