Azkaban与Oozie详细对比

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可以在继续失败的工作流运行。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值