预期功能点

  1. 作业编排(满足串行、并行、多依赖等)。
  2. 调度策略。
  3. 作业异常处理(作业重试、异常处理机制、任务补偿、延迟处理机制)
  4. 作业告警。
  5. 监控、审计(当前作业监控、历史作业完成情况)。
  6. 可扩展性。
  7. 权限管理。
  8. 易用性。

    常用调度系统对比

    | 比较项 | Azkaban | AirFlow | Oozie | Zeus | RunDeck | | :—- | :—-: | :—-: | :—-: | :—-: | :—-: | | 所有者 | Linkedin | Airbnb->Apache | Apache | Alibaba | RunDeck | | 历史 | 9年 | 6年 | 10年 | 7年 | 10年 | | 调度策略 | √ | √ | √ | √ | √ | | 作业异常处理 | √ | √ | × | √ | √ | | 作业告警 | √ | √ | √ | √ | √ | | 监控、审计 | √ | √ | √ | √ | √ | | 可扩展性 | √ | √ | × | × | √ | | 权限管理 | √ | √ | × | √ | × | | 易用性 | √ | √ | × | × | √ | | 作业编排 | √ | √ | √ | √ | 串行 | | 开发语言 | java | python | java | java | java | | 依赖组件 | MySQL | MySQL、python2.7 | MySQL | MySQL、Tomcat | MySQL | | 作业配置方式 | command、java | python脚本 | xml方式 | command、shell | command |

调度系统对比 - 图1

Azkaban

1. 简介

Azkaban是由Linkedin开源的一个批量工作流任务调度器。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

2. 优点

与Hadoop生态圈结合紧密,分布式,DAG依赖比较直观,提供可操作的UI界面,公共变量可配置。

3. 缺点

UI界面无法直接添加作业。

AirFlow

1. 简介

Airflow是Airbnb开源,托管于Apache基金会的,通过python定义作业。

2. 优点

与Hadoop生态圈结合紧密,分布式,DAG依赖比较直观,提供可操作的UI界面。

3. 缺点

python脚本配置作业,学习成本高,项目孵化中。

Oozie

1. 简介

Oozie目前是托管在Apache基金会的,开源。通过XML文件来定义DAG依赖。

2. 优点

与Hadoop生态圈结合紧密,开源早比较成熟,可以集成到HUE中。

3. 缺点

UI界面不直观,作业配置复杂,无法通过界面启动任务。

Zeus

1. 简介

阿里开源的基于Hadoop平台的开源工作流调度系统,使用java开发语言。

2. 优点

友好的界面显示、全中文,分布式,具有任务统计报表功能,配置简单。

3. 缺点

已经不在维护,文档缺失。

Rundeck

1. 简介

RunDeck是用 Java/Grails写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。

2. 优点

单机部署,分布式指令执行,可以设置作业预期执行时间,适合运维使用。

3. 缺点

作业依赖线性,没有清晰的DAG图。

参考

CSDN:调度系统对比 azkaban&airFlow&Oozie&zeus&rundeck
https://blog.csdn.net/weixin_36836847/article/details/96379318