选择 Apache Oozie 或 Apache Airflow 哪一个?需要比较

Posted

技术标签:

【中文标题】选择 Apache Oozie 或 Apache Airflow 哪一个?需要比较【英文标题】:Which one to choose Apache Oozie or Apache Airflow? Need a comparison 【发布时间】:2018-06-04 08:51:22 【问题描述】:

我是作业调度程序的新手,一直在寻找一个在大数据集群上运行作业的程序。我对可用的选择感到很困惑。发现 Oozie 与现有的 TWS、Autosys 等相比有很多限制。

需要一些关于 Oozie 与 Airflow 的比较点。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

根据我的经验,Airflow 是目前最好的数据管道。它最适合管理复杂、长期运行的工作流程。 UI 和模块化是最重要的。

气流

+ DAG 的 Python 代码 + 为每个主要服务/云提供商提供连接器 + 更多功能 + 高级指标 + 更好的 UI 和 API + 能够创建极其复杂的工作流程 + Jinja 模板 + 可用作 Tensorflow 扩展生态系统的编排器 = 可以并行化 = 与 HDFS、HIVE、PIG 等的本机连接。 = 图为 DAG

Oozie

--- 用于 DAG 的 Java 或 XML - 难以构建复杂的管道 - 较小、不太活跃的社区 - 更糟糕的 WEB GUI - Java API = 可以并行化 = 与 HDFS、HIVE、PIG 等的本机连接。 = 图为 DAG

如您所见,Airflow 比 Oozie 更易于使用(尤其是在大型异类团队中)、更通用和更强大的选择。

正如我所说:使用 Airflow。

Article you may find interesting

【讨论】:

Airflow 的另一点:Google 现在通过其新产品 Composer 提供使用 Kubernetes 分发的完全托管版本的 Airflow 这在我看来是广告回应。真的是 Java '-' 吗? groovy、jruby、jython... 和其他基于 jvm 的 Lang 呢? To Mee 看起来比仅 python 更好。但是python是不错的语言。我可以同意它看起来有点过时,并且认为这对于业务无关紧要 如果任何其他云提供商站出来提供类似的东西,我会更新评论,不必管理你的分布式集群,这会大大简化事情。虽然 Python 对人们来说无疑更容易上手,更容易阅读,写起来也不那么冗长,但它的真正优势在于可以直接访问最常用的数据科学库。我并不是说 Java 不如 Python,但是在这个特定的用例中,Python 确实让事情变得更容易。 我更多地将 Oozie 用于 Hadoop/Spark 上的 Data-Eng/Sc 项目。对于 Python,我们可以在 Oozie 中使用 bashscript 作为 shell 操作,然后让 bash 完成所有 Python 工作。 :) 我对 Airflow 不是很熟悉,但我可以补充一些需要考虑的事项: - 你看过 Oozie 的 Fluent API 吗?它可用于构建复杂的管道。 - 您可以将 HUE 用作 Web UI github.com/cloudera/hue - 您需要处理时区吗? - 你如何创建像 bundles 这样的 Oozie? - 您如何为 Airflow 调度程序实现 HASPoF? - Oozie 被许多公司用于大规模数据处理。 - Oozie 是为 Hadoop 设计的。 Airflow 中的委托令牌怎么样? - SLA 用于协调员和工作流程?

以上是关于选择 Apache Oozie 或 Apache Airflow 哪一个?需要比较的主要内容,如果未能解决你的问题,请参考以下文章

Apache Oozie

Apache Oozie学习笔记

错误:未找到 org.apache.oozie.action.hadoop.PigMain

Apache Oozie:Oozie调度shell脚本

Apache Oozie 在创建 mysql DB 时抛出 classnotfound 异常

1.1-1.4 hadoop调度框架和oozie概述