博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【大数据】【调度】Airflow 和 Azkaban的选型
阅读量:2156 次
发布时间:2019-05-01

本文共 1066 字,大约阅读时间需要 3 分钟。

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在手动执行某个任务时,可以选择同时执行该任务的上游和下游任务。 不支持,需要手动选择哪些任务需要执行
调度中心HA 不支持 不支持
执行器HA 支持 支持
单点故障 存在主节点故障风险 存在主节点故障风险
权限管控 支持,用户级别 支持,用户级别

1、跨dag/project依赖: 这个是指某些任务需要依赖另外的dag/project中的任务,比如一些公共维度表的更新任务。

2、回补执行: 错过了某一次执行时间之后,往回去补充执行的行为。主要是日期变量的保留。
3、airflow.cfg/max_active_runs_per_dag: 这个参数是airflow中只允许每个dag同一时间内只有1天被调度起来,可以防止airflow恐怖的回填行为。

总结、

1、ariflow在功能上要比azkaban完整强大。

2、airflow在部署运维以及使用上要比azkaban复杂,成本高,无论是学习还是运维。
3、airdlow跟azkaban相比,功能上最大的优势是支持【回填】和【跨dag依赖】。
4、综上,azkaban基本上可以满足日常的调度任务需求,所以如果需要轻量级的调度组件的话,可以考虑使用azkaban;如果想要功能更完善的调度系统,可以考虑使用airflow,不过要忍受airflow不太友好的web界面。

转载地址:http://iulwb.baihongyu.com/

你可能感兴趣的文章
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>