Oozie工作流之理论篇

Oozie工作流之理论篇

简介

Apache Oozie 是一个面向Hadoop平台的工作流引擎框架。

它能够提供对Hadoop Mapreduce、Pig Jobs、Spark、Sqoop、Hive的任务调度与协调。

Oozie工作流是放置在控制依赖DAG(有向无环图Direct Acyclic Graph)中的一组动作,如Hadoop的Map/Reduce作业:
DG_Workflow

对于Oozie工作流(workflow)来说,一个工作流就是一些活动(actions)的容器,其中活动包括Hadoop Map/Reduce jobs或者Pig jobs等,然后通过有向无环图来控制依赖,比如一个活动必须要在另一个活动结束之后才能运行。

定义

Oozie工作流定义,同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。

控制流节点

Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束(start,end和fail节点),以及工作流的执行路径(execution path)机制,如:decision,fork,join节点

动作节点

Oozie的动作节点提供了工作流触发实际执行计算任务的途径,并且可以支持多种不同的动作,如:Hadoop map-reduce,Pig,Sqoop以及子工作流。还可以支持额外的扩展。

运行

Oozie工作流作业是在远程系统中运行的,也就是说所有由动作节点触发的计算和处理人的都不在Oozie之中。而是如:Hadoop平台,将workflow.xml工作流定义文件上传到HDFS文件系统目录,然后运行Map/Reduce作业,远程系统通过回调的方式通知Oozie活动的运行情况。

触发

Oozie工作流可以根据时间与数据变化等外部条件进行触发。
一些工作流是根据需要触发的,但是大多数情况下,我们有必要基于一定的时间段和(或)数据可用性和(或)外部事件来运行它们。Oozie协调系统(Coordinator system)让用户可以基于这些参数来定义工作流执行计划。Oozie协调程序让我们可以以谓词的方式对工作流执行触发器进行建模,那可以指向数据、事件和(或)外部事件。工作流作业会在谓词得到满足的时候启动。

猜你喜欢

转载自blog.csdn.net/lusyoe/article/details/70880616
今日推荐