标签:领导 图片 比较 flow 必须 mode span enc rac
开源 |
Oozie |
成熟稳定可靠,可直接用于生产环境 |
|
Azkaban |
单点、简单粗暴,有两套独立的调度实现,必须二次开发才可用 |
|
|
Airflow |
|
代码以及流程配置都是python |
|
自己封装 |
基于quartz单机 |
使用zk来做分布式控制 |
常用quartz+zk做调度系统 |
使用db心跳来做分布式控制 |
比如阿里Zeus(3年前不再开源,还需要做一些二次开发才能用) |
||
基于quartz分布式 |
quartz本身使用db锁来做分布式控制 |
|
Ps:
zeus相比azkaban,有一点做的不好,是all-in-one,即主从部署在一起,有两个问题,一个是资源浪费,一个是主从相互影响;
|
Oozie |
Azkaban |
Zeus |
版本 |
4.3(5.0Beta) |
3.45 |
|
高可用性 |
支持(zk) |
不支持(存在单点) |
支持(db心跳) |
高稳定性 |
是 |
未知 |
未知 |
功能 |
丰富 |
简单 |
简单 |
界面 |
Ext2 |
最好 |
Gwt |
是否需要二次开发 |
否 |
是 |
是 |
是否需要人工干预 |
否 |
是 |
否 |
重启服务器流程自动恢复 |
是 |
否 |
是 |
是否有任务重复运行风险 |
否 |
是 |
是 |
代码质量 |
高 |
一般 |
一般 |
代码更新 |
正常 |
过于频繁 |
停止开源,无人维护 |
主从分离(任务分配与执行分离) |
是 |
是 |
否 |
最小占用资源 |
2个server Yarn |
1个web server 2个executor server |
2个server |
任务 |
Task/Job |
一个具体的操作 |
工作流 |
Workflow |
由多个任务组成 |
调度 |
Coordinator |
按照条件触发工作流,比如定时 |
定义 |
Definition |
描述要做的事情,比如任务定义、工作流定义、调度定义 |
实例 |
Instance |
定义的一次具体执行,包括执行时间、状态等 |
l 模型Model分为三种:任务Task/Job、工作流Workflow、调度Coordinator,一个或多个任务组合成一个工作流,工作流可以手工触发,也可以配置调度来触发,常见的调度比如定时;
l 定义Definition的每一次执行都是一个实例Instance,实例记录开始、结束时间、状态、日志等;
所有的调度框架的抽象是相同或者近似的,所以理论上可以将调度框架A的任务、工作流、调度定义 翻译Translate 为调度框架B的任务、工作流、调度定义,实现调度框架的切换;
一个形象的类比是,调度框架A是中国工人,调度框架B是日本工人,中国工人生病了,现在需要增加一个翻译人员C,将中国工人的工作内容和时间告诉日本工人,同时不断将日本工人工作的进展同步给中国工人,所有的变化对领导层都是透明的;
标签:领导 图片 比较 flow 必须 mode span enc rac
原文地址:https://www.cnblogs.com/barneywill/p/10109820.html