Oozie原理

前言:
在工作中,可能需要好几个Hadoop作业(job)来协作完成,往往一个job的输出会被当做另一个job的输入来使用,这个时候就涉及到了数据流的处理。
我们不可能就盯着程序,等它运行完再去运行下一个程序,所以,一般的做法就是通过shell来做,但是如果涉及到的工作流很复杂(比方说有1,2,3,4四个作业,1的输出作为2 3 4的输入,然后2 3的结果运算之后再和1的结果进行某种运算……最后再输出)是很费时费力的。这里就用到了oozie——一个能把多个MR作业组合为一个逻辑工作单元(一个工作流),从而自动完成任务调用的工具。

什么是Oozie?
Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig任务工作流.同时 Oozie 还是一个 Java Web 程序,运行在 Java Servlet 容器中,如 Tomcat.
Oozie 工作流中拥有多个 Action,如 Hadoop Map/Reuce job,Hadoop Pig job 等,所有的
Action 以有向无环图(DAG Direct Acyclic Graph)的模式部署运行.所以在 Action 的运行步
骤上是有方向的,只能上一个 Action 运行完成后才能运行下一个 Action.
Oozie工作通过HPDL(一种通过HML自定义处理的语言类似JBOSS JBPM的JPDL)来构造而成
Oozie工作流中的Action在运城系统运行中(如:Hadoop,pig服务器上) .一旦Action完成,远程服务器讲回调的Oozie的接口并通知Action已经完成,这时 Oozie 又会以同样的方式执行工作流中的下一个 Action,直到工作流中所有 Action 都完成(完成包括失败)
Oozie 工作流中包含可控制的工作流节点(control flow node)和 Action 节点(action
node).

Oozie的节点类型
Oozie的节点类型分为: 控制流节点(control flow nodes) 和行为节点(action nodes)
(1) 控制节点:
分为: start end kill decision fork join.其中start end kill 代表了工作流的起始及国祚流执行逻辑
(2)行为节点
Action Basis
Map-Reduce Action
Pig Action
Fs (HDFS) action
Ssh Action
Sub-workflow Action
Java Action
其他扩展的 Action

猜你喜欢

转载自blog.csdn.net/qq_38334410/article/details/80228057