| DolphinScheduler | AirFlow | ||
|---|---|---|---|
| 稳定性 | 单点故障 | 去中心化的多Master和多Worke | 是(单一调度程序) |
| HA额外要求 | 不需要(本身就支持HA) | Celery / Dask / Mesos + Load Balancer + DB | |
| 过载处理 | 任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列中,不会造成机器卡死 | 任务太多时会卡死服务器 | |
| 易用性 | DAG监控界面 | 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然 | 不能直观区分任务类型 |
| 可视化流程定义 | 是(所有流程定义操作都是可视化的,通过拖拽任务来绘制DAG,配置数据源及资源。同时对于第三方系统,提供api方式的操作) | 否(通过python代码来绘制DAG,使用不便,特别是对不会写代码的业务人员基本无法使用) | |
| 快速部署 | 一键部署 | 集群化部署复杂 | |
| 功能 | 是否能暂停和恢复 | 支持暂停(非真暂停),恢复操作 | 否(只能先将工作流杀死再重新运行) |
| 是否支持多租户 | 支持(DolphinScheduler上的用户可以通过租户和hadoop用户实现多对一或一对一的映射关系,这对大数据作业的调度是非常重要的) | 否(只支持多用户) | |
| 任务类型 | 支持传统的shell任务,同时支持大数据平台任务调度: MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Procedure、Sub_Process | BashOperator、DummyOperator、MySqlOperator、HiveOperator、EmailOperator、HTTPOperator、SqlOperator | |
| 契合度 | 支持大数据作业spark,hive,mr的调度,同时由于支持多租户,与大数据业务更加契合 | 由于不支持多租户,在大数据平台业务使用不够灵活 | |
| 任务重跑 | 支持失败任务重跑,但是不能指定从任意一个任务开始重跑 | 可以指定从任意一个任务节点开始重跑 | |
| 跳过某些任务/运行节点 | 是 | 否 | |
| 跨项目依赖 | 否 | 否 | |
| 项目内依赖 | 是(在一个项目中前驱依赖可以指定不同工作流中任意一个任务,后继依赖可以指定一整个工作流,但是无法指定其他工作流中的任意一个任务) | 是(将DAG定义在一个脚本中) | |
| 扩展性 | 是否支持自定义任务类型 | 是 | 是 |
| 是否支持集群扩展 | 是(调度器使用分布式调度,整体的调度能力会随便集群的规模线性增长,Master和Worker支持动态上下线) | 是(但是Executor水平扩展复杂) | |
| 监控告警 | 服务状态监控 | 是 | 否 |
| 告警类型 | 自带邮件告警,支持分组监控告警 | 不自带告警 | |
| 系统版本 | 系统版本要求 | 均7.0以上 | 暂无 |
| 任务迁移 | 支持任务迁移/Copy | 是 | 否 |
| 支持组件命令 | 支持Python命令 | 是 | 是 |
| 支持Hive-SQL命令 | 是 | 是 | |
| 支持Shell命令 | 是 | 是 | |
| 支持Http命令 | 是 | 是 | |
| 支持Sqoop命令 | 是 | 否 | |
| 支持Spark命令 | 是 | 否 | |
| 支持Flink命令 | 是 | 否 | |
| 支持MR命令 | 是 | 否 | |
| 支持Datax命令 | 是 | 否 | |
| 支持Hadoop命令 | 否 | 否 |