Oozie简介

转载 2012年03月23日 13:57:34

什么是Oozie?

Oozie是一种Java Web应用程序,它运行在Javaservlet容器——即Tomcat——中,并使用数据库来存储以下内容:

工作流定义

当前运行的工作流实例,包括实例的状态和变量

Oozie工作流是放置在控制依赖DAG(有向无环图 DirectAcyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。

hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执行的流程,并包含工作流的起点和终点(start、end和fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。动作节点是一些机制,通过它们工作流会触发执行计算或者处理任务。Oozie为以下类型的动作提供支持: Hadoop map-reduce、Hadoop文件系统、Pig、Java和Oozie的子工作流(SSH动作已经从Oozie schema 0.2之后的版本中移除了)。

所有由动作节点触发的计算和处理任务都不在Oozie之中——它们是由Hadoop的Map/Reduce框架执行的。这种方法让Oozie可以支持现存的Hadoop用于负载平衡、灾难恢复的机制。这些任务主要是异步执行的(只有文件系统动作例外,它是同步处理的)。这意味着对于大多数工作流动作触发的计算或处理任务的类型来说,在工作流操作转换到工作流的下一个节点之前都需要等待,直到计算或处理任务结束了之后才能够继续。Oozie可以通过两种不同的方式来检测计算或处理任务是否完成,也就是回调和轮询。当Oozie启动了计算或处理任务的时候,它会为任务提供唯一的回调URL,然后任务会在完成的时候发送通知给特定的URL。在任务无法触发回调URL的情况下(可能是因为任何原因,比方说网络闪断),或者当任务的类型无法在完成时触发回调URL的时候,Oozie有一种机制,可以对计算或处理任务进行轮询,从而保证能够完成任务。

Oozie工作流可以参数化(在工作流定义中使用像${inputDir}之类的变量)。在提交工作流操作的时候,我们必须提供参数值。如果经过合适地参数化(比方说,使用不同的输出目录),那么多个同样的工作流操作可以并发。

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

   经常我们还需要连接定时运行、但时间间隔不同的工作流操作。多个随后运行的工作流的输出会成为下一个工作流的输入。把这些工作流连接在一起,会让系统把它作为数据应用的管道来引用。Oozie协调程序支持创建这样的数据应用管道。

 

设计思想

  工作流控制可以通过decision\fork\join等几个节点完成。目前不支持环形工作流.

动作和决定可以和job的属性、action的输出(例如计数等)、hdfs的文件信息(是否存在、大小等)一起参数化。这些参数可以使用${var}定义在工作流配置文件中。

工作流应用是一个包含了工作流定义(xml文件),所有必须的文件的目录,并执行所有的动作。这些必须文件包括jar文件(用来执行mr任务)、shell脚本(用来执行streaming mr 任务)、还有其他的比如本地库、pig脚本以及其他文件。

 通过命令行工具或者webserviceapi或java api即可执行工作流。

 通过web控制台、命令行工具、webserviceapi、java api即可对系统和工作流任务进行监控。Oozie是一个事务系统,其已经内在支持了自动化和手动的重试机制。(这点DIP-DATA-ANALYZE有转发(自动第二次重试),jobtrace(手动重试)也可以支持).

如果任务失败了,工作流的任务就会略过之前完成的动作重新执行,并且工作流应用在重新运行前可以被修补(这里patched不确定是否这样表达).

 目前特性: 

工作流依赖管理:Oozie运行环境管理任务依赖,并在所有依赖全部满足时菜执行动作。工作流取决于时间和/或数据是否存在。基于DAG(有向无环图)工作流内部依赖通常会优先完成.

动作节点的参数化:Oozie内嵌默认使用jsp表达式语言对动作进行参数化。这些参数包括工作流名字、动作名称、开始时间等。

同步数据集:工作流可以依赖同步输入数据集合。这些数据可以是定时数据集或者是周期性产生的数据集.

本地支持streaming mr、pig、hdfs jobs。支持绝大部分Hadoop集群的任务类型

Webservice API:支持命令行和webserviceapi

支持界面化的监控:既可以通过gui界面,也可以通过webservice api监控工作流运行情况

缺失:

目前还不支持hive

不支持hbase 

Oozie运行必要条件:

Unix

Java 1.6+

Tomcat 6+

MySQL 5+ or HSQLDB 1.8+

Hadoop 0.20+

Pig 0.2+

参考资料:

  官网:http://yahoo.github.com/oozie/

 apache:http://incubator.apache.org/oozie/

  博客文章:http://blog.sina.com.cn/s/blog_62a9902f01011ccd.html

完结

 

Oozie基础知识:调度器简介及Oozie功能架构

1.Oozie调度框架      * 工作流:将不同的业务进行编排     如:import->hive->export * 调度:对作业或任务和定时执行,或事件的触发执行         如...
  • nipanlong001
  • nipanlong001
  • 2017年05月16日 23:11
  • 818

OOzie简介

用几句话就可以概括什么事Oozie: Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。Oozie的工作流是一系列动作的直接周期图。Oozie协调作业就是通过时间(频率)和有效数...
  • GreatElite
  • GreatElite
  • 2014年02月07日 23:14
  • 5194

Oozie简介

在Hadoop中执行的任务有时候需要把多个Map/Reduce作业连接到一起,这样才能够达到目的。[1]在Hadoop生态圈中,有一种相对比较新的组件叫做Oozie[2],它让我们可以把多个Map/R...
  • libing13810124573
  • libing13810124573
  • 2014年09月02日 11:03
  • 395

oozie 常用命令

一、客户端命令 1.提交作业,作业进入PREP状态 oozie job -oozie http://localhost:11000/oozie -config job.properties -sub...
  • renyp8799
  • renyp8799
  • 2013年11月30日 12:45
  • 1749

Oozie基础小结

Oozie是一个工作流引擎服务器,用于运行hadoop map/reduce和hive等任务工作流。 同时Oozie还是一个java web程序,运行在java servlet容器中,如tomcat...
  • zengxiaosen
  • zengxiaosen
  • 2017年02月16日 00:25
  • 1343

oozie详解

首页 ›› Oozie ›› 开源技术 ››Oozie工作流程定义详解2014-03-04 19:21:02 YanjunOozie工作流程定义是一个DAG(Directed Acyclical Gr...
  • zhou689689
  • zhou689689
  • 2014年11月17日 16:06
  • 1384

Oozie4.2.0配置安装实战

软件版本:Oozie4.2.0,Hadoop2.6.0,Spark1.4.1,Hive0.14,Pig0.15.0,Maven3.2,JDK1.7,zookeeper3.4.6,HBase1.1.2,...
  • fansy1990
  • fansy1990
  • 2016年01月23日 23:44
  • 5733

Apache Oozie 的执行模型理解

Oozie的执行模型是什么?Oozie是怎样把作业提交给Hadoop集群执行的? 一,执行模型 Oozie通过一个“launcher job”来运行 action,比如通过Oozie的命令行来发起...
  • hapjin
  • hapjin
  • 2015年11月11日 17:19
  • 1413

Oozie分布式工作流——EL表达式

oozie支持使用EL(expression language)表达式。 基本的EL常量 KB MB GB TB PB 基本EL函数 string firstNotNull(Stri...
  • huanghongfei1
  • huanghongfei1
  • 2017年03月08日 12:15
  • 292

Hue-安装-配置-添加Oozie

安装步骤参考 http://gethue.com/how-to-build-hue-on-ubuntu-14-04-trusty/ 配置步骤参考 http://shiyanjun.cn/arc...
  • Shannon_ying
  • Shannon_ying
  • 2016年05月09日 21:43
  • 2902
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oozie简介
举报原因:
原因补充:

(最多只允许输入30个字)