1) 你可以试试dagobah,如其 github 页面所述:Dagobah 是一个简单的基于依赖的作业调度程序,用 Python 编写。Dagobah 允许您使用 Cron 语法安排定期作业。然后,每个作业按照依赖关系图定义的顺序启动一系列任务(子流程),您可以在 Web 界面中通过单击和拖动轻松绘制。与以下三个相比,这是最轻量级的调度程序项目。
2)在 ETL 任务方面,Spotify 开源的luigi更侧重于 hadoop 作业,如下所述: Luigi 是一个 Python 模块,可帮助您构建复杂的批处理作业管道。它处理依赖关系解析、工作流管理、可视化等。它还内置了 Hadoop 支持。
这两个模块都主要用Python编写,并包含Web界面以便于管理。
据我所知,“luigi”没有为作业任务提供调度程序模块,我认为这是 ETL 任务所必需的。但是使用 'luigi' 更容易用 Python 编写 map-reduce 代码,并且每天在 Spotify 上运行的数千个任务都依赖于它。
3) 像 luigi 一样,Pinterest 开源了一个名为Pinball的工作流管理器。Pinball 的架构遵循 master-worker(或 master-client 以避免与我们在下面介绍的特殊类型的客户端的命名混淆)范例,其中有状态的中央 master 充当关于无状态客户端的当前系统状态的真实来源。并且它顺利地集成了 hadoop/hive/spark 作业。
4) Airflow是 Airbnb 开源的另一个 dag job schedule 项目,它很像 Luigi 和 Pinball。后端建立在 Flask、Celery 等之上。根据示例作业代码,Airflow 在我身边既强大又易于使用。
最后但同样重要的是,Luigi、Airflow 和 Pinball 可能会得到更广泛的使用。这三个之间有一个很好的比较:http: //bytepawn.com/luigi-airflow-pinball.html