Azkaban和Oozie的区别:
Azkaban是轻量级的,配置简单;Oozie是重量级的,但配置复杂。
二者均可以调度Linux、mapreduce、spark、pig、java、hive、java程序、脚本工作流任务。
二者均可以定时执行工作流任务。
-
工作流定义:
Azkaban使用Properties文件(YAML语法)定义工作流;
Oozie使用XML文件定义工作流。 -
工作流传参:
Azkaban支持直接传参,例如${input}
;
Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}
。 -
定时执行:
Azkaban的定时任务基于时间;
Oozie的定时任务基于时间和输入数据。 -
资源管理:
Azkaban有较为严格的权限控制,如用户对工作流进行读/写/执行等操作;
Oozie基本没有权限控制。 -
依赖:
Azkaban依赖于MySql;Oozie依赖于hadoop。
-
工作流操作:
Azkaban使用Web操作;
Oozie支持命令行、Web、RestApi、Java Api操作. -
工作流状态:
Azkaban将正在执行的workflow状态保存在内存中;
Oozie将其保存在MySql中。 -
执行位置:
Azkaban在脚本所在位置执行命令/程序;
Oozie在Hadoop集群生态内执行命令/程序。