工作流调度器Azkaban和Oozie的对比

工作流调度器的介绍

(1)为什么要使用工作流调度器?
  • 一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等
  • 各任务单元之间存在时间先后及前后依赖关系
  • 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行
(2)常见工作流调度器

在 hadoop 领域,常见的工作流调度器有 Oozie, Azkaban,Cascading,Hamake 等 。
工作流调度器Azkaban和Oozie的对比_第1张图片

Oozie与Azkaban的对比

目前企业中最流行的两种调度器是Oozie与Azkaban。总的来说ooize 相比 azkaban 是一个重量级的任务调度系统功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器 azkaban 是很不错的候选对象。

二者的区别可以从以下的几个方面进行描述
1.功能
  两者均可以调度 mapreduce,pig,java,脚本工作流任务两者均可以定时执行工作流任务
2.工作的定义
   Azkaban 使用 Properties 文件定义工作流
   Oozie 使用 XML 文件定义工作流
3.工作流传参
   Azkaban 支持直接传参,例如 ${input}
   Oozie 支持参数和 EL 表达式,例如 ${fs:dirSize(myInputDir)} strust2(ONGL)
4.定时执行
   Azkaban 的定时执行任务是基于时间的
   Oozie 的定时执行任务基于时间和输入数据
5.资源管理
   Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作
   Oozie 暂无严格的权限控制
6.记录workflow的状态
 Azkaban将正在执行的workflow状态保存在内存
 Oozie将其保存在Mysql中。
7.出现失败的情况
Azkaban会丢失所有的工作流
但是Oozie可以在继续失败的工作流运行
8.工作流执行
   Azkaban 有两种运行模式,分别是 solo server mode(executor server 和 web server 部署在同一台节点)和 multi server mode(executor server 和 web server 可以部署在不同节点)
   Oozie 作为工作流服务器运行,支持多用户和多工作流
9.操作工作流
   Azkaban 支持浏览器以及 ajax 方式操作工作流
   Oozie 支持命令行、HTTP REST、Java API、浏览器操作工作流

你可能感兴趣的:(大数据学习)