来源:https://www.astronomer.io/guides/airflow-vs-oozie/
我们经常会被问到Airflow和Oozie之间的区别。下面是对这两种工具的总结,以及围绕项目的两个社区的比较。
Airflow利用python越来越多的使用,允许您创建极其复杂的工作流,而Oozie允许您用Java和XML编写工作流。支持Airflow的开源社区是支持Oozie社区的20倍。
一、Airflow概述
Airflow是一个开源工作流管理系统,由Airbnb数据工程师Maxime Beauchemin创建,设计用于创作、调度和监控DAGs(有向无环图)形式的工作流。所有工作流都是用python设计的,它是目前市场上最流行的开源工作流管理工具。
二、Oozie概述
Oozie是一个为Hadoop系统用Java编写的开源工作流调度系统。Oozie有一个协调器,允许根据时间、事件或数据可用性来触发作业,并允许您通过命令行、Java API和GUI来调度作业。它支持XML属性文件,并使用SQL数据库记录与任务编排有关的元数据。
虽然已经有一些团队成功地使用了Oozie,但据报道,Oozie在处理复杂的管道方面存在困难,而且GUI开发不完善,难以导航。
三、关键的不同点
Python和Java
如上所述,Airflow允许你用Python编写代码,而Oozie使用Java或XML。根据Codecademy最近的报告,Python社区近年来呈指数级增长,甚至在2017年超越了Stack Overflow上最活跃的编程语言:
![](https://img.haomeiwen.com/i5619637/7c42f541165d7677.png)
四、社区
Airflow是市场上最活跃的工作流管理工具,在Github上有8636颗星和491名活跃贡献者。请参阅下面的图片,其中记录了最近提交到项目的代码更改。
![](https://img.haomeiwen.com/i5619637/6f93813126bd81c9.png)
Oozie有386颗星,Github上有16位活跃贡献者。请参阅下面的图片,其中记录了最近提交到项目中所导致的代码更改。
![](https://img.haomeiwen.com/i5619637/2589757e84b10bc1.png)
请注意,对于开源项目,社区的贡献是重要的,因为它们反映了社区对项目未来的信心,并表明正在积极开发特性。
五、其他功能
正如Stack Overflow用户Michele De Simoni所指出的,在工作流管理方面,有几个原因可以解释为什么Airflow比Oozie更受社区的青睐。
六、Airflow
DAGs(+)的Python代码
为每个主要服务/云提供商提供连接器(+)
更多样化的(+)
先进的指标(+)
更好的UI和API (+)
能够创建极其复杂的工作流(+)
Jinja模板(+)
可并行化(=)
到HDFS、HIVE、PIG等的原生连接。(=)
图表示为DAG (=)
七、Oozie
DAGs的Java或XML(---)
难以建造复杂管道(-)
更小,更不活跃的社区(-)
更糟的WEB GUI (-)
Java API (-)
可并行化(=)
到HDFS、HIVE、PIG等的本机连接。(=)
图表示为DAG (=)
网友评论