Hadoop工作流引擎之Azkaban与Oozie对比(四)
Azkaban是什么?(一)
不多说,直接上干货!
http://www.cnblogs.com/zlslch/category/938837.html
目前,市面上最流行的两种Hadoop工作流引擎调度器Azkaban与Oozie。
具体,可以进一步看我的博客。
Azkaban概念学习系列http://www.cnblogs.com/zlslch/category/938837.html
和Oozie概念学习系列http://www.cnblogs.com/zlslch/category/916607.html
下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别。
|
特性 |
Oozie |
Azkaban |
|
工作流描述语言 |
XML (xPDL based) |
text file with key/value pairs |
|
依赖机制 |
explicit |
explicit |
|
是否要web容器 |
Yes |
Yes |
|
进度跟踪 |
web page |
web page |
|
Hadoop job调度支持 |
yes |
yes |
|
运行模式 |
daemon |
daemon |
|
Pig支持 |
yes |
yes |
|
事件通知 |
no |
no |
|
需要安装 |
yes |
yes |
|
支持的hadoop版本 |
0.20+ |
currently unknown |
|
重试支持 |
workflownode evel |
yes |
|
运行任意命令 |
yes |
yes |
|
Amazon EMR支持 |
no |
currently unknown |
Azkaban与Oozie对比
对市面上最流行的两种调度器,给出以下详细对比。知名度比较高的应该是Apache Oozie,但是其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。
从功能上来对比
两者均可以调度linux命令、mapreduce、spark、pig、java、hive、java程序、脚本工作流任务
两者均可以定时执行工作流任务
从工作流定义上来对比
1、Azkaban使用Properties文件定义工作流
2、Oozie使用XML文件定义工作流
从工作流传参上来对比
1、Azkaban支持直接传参,例如${input}
2、Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}
从定时执行上来对比
1、Azkaban的定时执行任务是基于时间的
2、Oozie的定时执行任务基于时间和输入数据
从资源管理上来对比
1、Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作
2、Oozie暂无严格的权限控制
从工作流执行上来对比
1、Azkaban有三种运行模式:
1.1、solo server mode:最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式。
1.2、 two server mode:数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响
1.3 、multiple executor mode:该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个
我这次采用第二种模式,管理服务器、执行服务器分进程,但在同一台主机上。
2、Oozie作为工作流服务器运行,支持多用户和多工作流
从工作流管理上来对比
1、Azkaban支持浏览器以及ajax方式操作工作流
2、Oozie支持命令行、HTTP REST、Java API、浏览器操作工作流
另一版本区别:
两者在功能方面大致相同,只是Oozie底层在提交Hadoop Spark作业是通过org.apache.hadoop的封装好的接口进行提交,而Azkaban可以直接操作shell语句。在安全性上可能Oozie会比较好。
工作流定义:Oozie是通过xml定义的而Azkaban为properties来定义。
部署过程: Oozie的部署太虐心了。有点难。同时它是从Yarn上拉任务日志。
Azkaban中如果有任务出现失败,只要进程有效执行,那么任务就算执行成功,这是BUG,但是Oozie能有效的检测任务的成功与失败。
操作工作流:Azkaban使用Web操作。Oozie支持Web,RestApi,Java API操作。
权限控制: Oozie基本无权限控制,Azkaban有较完善的权限控制,入用户对工作流读写执行操作。
Oozie的action主要运行在hadoop中而Azkaban的actions运行在Azkaban的服务器中。
记录workflow的状态:Azkaban将正在执行的workflow状态保存在内存中,Oozie将其保存在Mysql中。
出现失败的情况:Azkaban会丢失所有的工作流,但是Oozie可以在继续失败的工作流运行。
Hadoop工作流引擎之Azkaban与Oozie对比(四)的更多相关文章
- hadoop工作流引擎之azkaban [转]
介绍 Azkaban是twitter出的一个任务调度系统,操作比Oozie要简单很多而且非常直观,提供的功能比较简单.Azkaban以Flow为执行单元进行定时调度,Flow就是预定义好的由一个或多个 ...
- hadoop工作流引擎之azkaban
Azkaban是twitter出的一个任务调度系统,操作比Oozie要简单很多而且非常直观,提供的功能比较简单.Azkaban以Flow为执行单元进行定时调度,Flow就是预定义好的由一个或多个可存在 ...
- 驰骋工作流引擎JFlow与activiti的对比 -总结
共同点: 1. 嵌入式的工作流引擎,降低集群复杂性. 2. 严格而灵活的流程版本控制 3. 支持多种数据库 4. 支持多种流程设计模式 5. 成熟度高的开源工作流,具有可靠的稳定性和性能. 区别: 1 ...
- 驰骋工作流引擎JFlow与activiti的对比之2种取消模式
1. 取消模式(Cancel Activity) 就是将某个活动取消. JFLOW中,类似与删除流程操作相同. 不能删除:不允许删除. 逻辑删除:仅仅将此流程标记为删除状态,数据仍然存在节点表单与流程 ...
- F2工作流引擎之组织用户模型(四)
1 概述 工作流组织模型是工作流引擎中核心重要的一部份,是实现人机交互中不可或缺的组成部分,而由于工作流引擎需要适应不同的系统之间存在组织用户结构的不同, 如组织表中字段名不同,所以需要实现适应不同系 ...
- 驰骋工作流引擎JFlow与activiti的对比之4种包含多实例的模式
1. 无同步的多实例(MIwithout) 在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步. 例子:比如用户购买了N本书,于是后续的支付账单.更新客户可以以本书为单位各自 ...
- 驰骋工作流引擎JFlow与activiti的对比之2种结构化模式
1. 任意循环(Arbitrary Cycles) ACTIVITI : 某一个或多个活动可以反复执行. 例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水- ...
- 驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式
多重选择(Multiple Choice) 在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支. 例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观 ...
- Azkaban和Oozie的区别
Azkaban和Oozie的区别: 当前,实际生产中最流行的两种Hadoop工作流引擎是Azkaban与Oozie.但活跃度最高的当是Azkaban了,下面对两者的异同之处作如下对比. 功能对比 Az ...
随机推荐
- datagrid 行号问题综合
1.datagrid 左侧行号设置宽度 : 到 easyui.css 中修改 .datagrid-cell-rownumber 中 width 的宽度.
- mycat的事务支持情况
中秋国庆一共12天,玩的有点嗨,完全没想工作的事情- -.回来赶紧补补.看了一下mycat关于事务的支持情况,做一下记录. 说mycat的事务支持之前,先说说XA协议,即分布式事务.指的是TM(事务管 ...
- Nginx基本配置和作用
nginx可以重新加载文件的.我们直接运行:nginx -s reload 配置文件有没有问题,可以直接输入:nginx -t nginx -s stop就可以关闭 但有时我们就不想它挂的时候访问另外 ...
- [APIO 2010] 特别行动队
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1911 [算法] 设前i个士兵"修正"后的最大战斗力为fi 令su ...
- Storm并行度详解
一.Storm并行度相关的概念 Storm集群有很多节点,按照类型分为nimbus(主节点).supervisor(从节点),在conf/storm.yaml中配置了一个supervisor,有多个槽 ...
- Spring 注释标签@Resource @Autowired 和@Inject的区别
一些spring的开发人员在使用这三个标签进行注入的时候感到困惑.我来尝试解释一下这三个注解的主要区别.事实上,这三者非常相似,只存在一些微小的差别.在稍后的文章中会进行解释. @Resource-在 ...
- 方法名的string类型应用(补)
string strClass = "stringConvertClass.test"; //命名空间+类名 string strMethod = "Method&quo ...
- CF-799B
B. T-shirt buying time limit per test 3 seconds memory limit per test 256 megabytes input standard i ...
- 【Hadoop】MapReduce笔记(二):MapReduce容错,任务失败处理
典型问题:Hadoop如何判断一个任务失败?失败了怎么做? 分析:实际情况下,用户代码存在软件错误.进程崩溃.机器故障等都会导致失败.Hadoop判断的失败有不同级别类型,针对不同级别的失败有不同的处 ...
- 洛谷 - P2051 - 中国象棋 - 简单dp
https://www.luogu.org/problemnew/show/P2051 一点都不简单的简单dp. 还是从旧行转移到新行,而不是考虑新行从哪些旧行转移吧. #include<bit ...