Hadoop工作流引擎之Azkaban与Oozie对比(四)

简介:

 目前,市面上最流行的两种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可以在继续失败的工作流运行。



本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6296274.html,如需转载请自行联系原作者

相关文章
|
9月前
|
SQL 分布式计算 运维
Hadoop生态系统中的监控与管理工具:Apache Ambari和Apache Oozie的功能解析
Hadoop生态系统中的监控与管理工具:Apache Ambari和Apache Oozie的功能解析
|
SQL 分布式计算 Hadoop
Azkaban--使用实战--hadoop 调度(hdfs、mapreduce) | 学习笔记
快速学习 Azkaban--使用实战--hadoop 调度(hdfs、mapreduce)
562 0
Azkaban--使用实战--hadoop 调度(hdfs、mapreduce) | 学习笔记
|
分布式计算 资源调度 Hadoop
Apache Oozie一 实战操作一修改 hadoop 资源分配属性|学习笔记
快速学习 Apache Oozie一 实战操作一修改 hadoop 资源分配属性
125 0
Apache Oozie一 实战操作一修改 hadoop 资源分配属性|学习笔记
|
分布式计算 Hadoop 关系型数据库
Apache Oozie- 安装部署修改 hadoop& 解压拷贝依赖包|学习笔记
快速学习 Apache Oozie- 安装部署修改 hadoop& 解压拷贝依赖包
124 0
Apache Oozie- 安装部署修改 hadoop& 解压拷贝依赖包|学习笔记
|
分布式计算 关系型数据库 Hadoop
|
Web App开发 分布式计算 关系型数据库
|
分布式计算 Hadoop Apache
Cloudera编译好的各种hadoop,oozie等组件压缩包URL
由于Apache官方有些组件只提供源代码,需要我们编译,很不方便,而且往往还有兼容性问题!!!所以我们可以使用cloudera公司给我们编译好的组件(基本和Apache一样的)。
825 0
|
分布式计算 Hadoop Java
|
8天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
30 2