|
常见工作流调度系统
Oozie, Azkaban, Cascading, Hamake
各种调度工具特性对比
特性
Hamake
Oozie
Azkaban
Cascading
工作流描述语言
XML
XML (xPDL based)
text file with key/value pairs
Java API
依赖机制
data-driven
explicit
explicit
explicit
是否要web容器
No
Yes
Yes
No
进度跟踪
console/log messages
web page
web page
Java API
Hadoop job调度支持
no
yes
yes
yes
运行模式
command line utility
daemon
daemon
API
Pig支持
yes
yes
yes
yes
事件通知
no
no
no
yes
需要安装
no
yes
yes
no
支持的hadoop版本
0.18+
0.20+
currently unknown
0.18+
重试支持
no
workflownode evel
yes
yes
运行任意命令
yes
yes
yes
yes
Amazon EMR支持
yes
no
currently unknown
yes
Azkaban与Oozie对比
ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。
详情如下:
1、功能
都可以调度mapreduce、pig、java、脚本等工作流任务和执行工作流任务
2、工作流定义
Azkaban使用Properties文件定义工作流,Oozie使用XML文件定义工作流
3、工作流传参
Azkaban支持直接传参,例如${input},Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}
4、定时执行
Azkaban的定时执行任务是基于时间的,Oozie的定时执行任务基于时间和输入数据
5、资源管理
Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作,Oozie暂无严格的权限控制
6、工作流执行
Azkaban有两种运行模式,分别是solo server mode(executor server和web server部署在同一台节点)和multi server mode(executor server和web server可以部署在不同节点)
Oozie作为工作流服务器运行,支持多用户和多工作流
7、工作流管理
Azkaban支持浏览器以及ajax方式操作工作流
Oozie支持命令行、HTTP REST、Java API、浏览器操作工作流
Azkaban
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
1、Web用户界面
2、方便上传工作流
3、方便设置任务之间的关系
4、调度工作流
5、认证/授权(权限的工作)
6、能够杀死并重新启动工作流
7、模块化和可插拔的插件机制
8、项目工作区
9、工作流和任务的日志记录和审计 |
|
|