Airflow和Azkaban这两个组件对大数据集群来说是相对独立的,都是可以独立于集群安装,所以不管是cdh还是hdp集群,都可以选择其中之一作为集群的任务调度系统。
我们公司有2套集群,国内国外各一套,然后因为历史原因国内用的是Azkaban,国外用的是Airflow,考虑到以后技术栈的统一,打算慢慢将两个集群的组件统一化。
最后选择airflow作为
对比、
调度组件 | Airflow | Azkaban |
---|---|---|
web界面 | 该有的功能都有,但是复杂不直观,甚至有点难用 | 简单,工作流依赖清晰,易上手 |
工作流层级 | dag - - tasks | project - - flows - - tasks |
工作流语法 | python脚本 | 自定义DSL,key/value的语法 |
跨dag/project依赖 | 通过【ExternalTaskSensor】对其他dag依赖 | 不支持跨project依赖 |
易用程度 | 安装部署复杂,包含包括WebServer、Scheduler、Worker | 简单,开箱即用 |
回填(回补执行) | 支持,通过airflow内部变量如{ { ds }}实现 | 不支持 |
手动依赖执行 | 支持,airflow在手动执行某个 |