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命令 | 否 | 否 |