1. Oozie简介
Yahoo开发工作流引擎Oozie(驭象者),用于管理Hadoop任务(支持MapReduce、Spark、Pig、Hive),把这些任务以DAG(有向无环图)方式串接起来。Oozie任务流包括:coordinator、workflow;workflow描述任务执行顺序的DAG,而coordinator则用于定时任务触发,相当于workflow的定时管理器,其触发条件包括两类:
- 数据文件生成
- 时间条件
Oozie定义了一种基于XML的hPDL (Hadoop Process Definition Language)来描述workflow的DAG。在workflow中定义了
- 控制流节点(Control Flow Nodes)
- 动作节点(Action Nodes)
其中,控制流节点定义了流程的开始和结束(start、end),以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop任务、SSH、HTTP、eMail和Oozie子流程等。控制流节点示例如下:
<workflow-app xmlns='uri:oozie:workflow:0.2' name="ooziedemo-wf">
<start to="timeCheck"/>
...
<kill name="fail"&g