备注:
CDH 6.3.1
oozie 5.1.0
一.oozie简介
Oozie是一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。
所谓工作流,即是指数据import进HDFS,然后用hive分析,然后将分析结果集export,把不同的结果集合并成最终结果,将不同的业务进行编排。Oozie的工作流任务是DAG(有向无环图)。
所谓调度,即是指对作业或任务的定时执行,或者是事件的触发执行。触发执行的时机:在指定时间触发执行,或者当某目录下有数据集时触发执行。
Oozie集成了Hadoop的很多框架,如Java MapReduce、Streaming MapReduce、Pig、Hive、Sqoop、Distcp。一个Oozie Job也是一个MapReduce程序,仅仅只有map任务的程序,是分布式可扩展的。针对不同类型的任务编写的workflow,可以写成模板来直接套用。
Oozie同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、eMail和Oozie子流程。
二.oozie各个版本架构
2.1 v1
Oozie v1 is a server based Workflow Engine specialized in running workflow jobs with actions that execute Hadoop Map/Reduce and Pig jobs.
image.png2.2 v2
Oozie v2 is a server based Coordinator Engine specialized in running workflows based on time and data triggers. (e.g. wait for my input data to exist before running my workflow).
image.png2.3 v3
Oozie v3 is a server based Bundle Engine that provides a higher-level oozie abstraction that will batch a set of coordinator applications. The user will be able to start/stop/suspend/resume/rerun a set coordinator jobs in the bundle level resulting a better and easy operational control.
v3提供了一个更高级别的抽象Oozie,将批处理一组协调应用程序
image.png image.png参考
1.http://oozie.apache.org/docs/5.1.0/index.html
2.https://blog.csdn.net/gongxifacai_believe/article/details/81073414
3.https://blog.csdn.net/wdr2003/article/details/79711669
网友评论