Oozie简介
Oozie英文翻译为:驯象人。一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对hadoop Mapreduce,pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。
在任务开发中,最方便的就是使用linux自带的crond定时启动任务,因为Oozie的框架体量比较大,功能比较强,部署不是很容易。这之间还有一个Az调度任务框架,比Oozie体量小,比crond功能强。
模块
在Oozie中有三个模块分别为:
- Workflow
顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个),workflow没有定时启动的功能,提交就运行任务(多用于一次行任务) - Coordinator
定时触发workflow,周期性任务 - Bundle Job
绑定多个Coordinator
查看官方文档就会发现:
在最重要的第三章里只有两个章节,就是Oozie最常用的两个节点,分别为控制流节点(Control Flow Nodes),工作流动作节点(Workflow Action Nodes)
- 控制流节点
控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径控制,如decision,fork,join等。 - 动作节点
负责执行具体动作的节点,其实就是我们的任务代码,执行某个shel脚本等,具体的行为动作。