Oozie 快速入门

设想一下,当你的系统引入了spark或者hadoop以后,基于Spark和Hadoop已经做了一些任务,比如一连串的Map Reduce任务,但是他们之间彼此右前后依赖的顺序,因此你必须要等一个任务执行成功后,再手动执行第二个任务。是不是很烦! 这个时候Oozie(驯象人,典故来自评论一楼)就派上用场了,它可以把多个任务组成一个工作流,自动完成任务的调用。

简介

Oozie是一个基于工作流引擎的服务器,可以在上面运行Hadoop的Map Reduce和Pig任务。它其实就是一个运行在Java Servlet容器(比如Tomcat)中的Javas Web应用。

对于Oozie来说,工作流就是一系列的操作(比如Hadoop的MR,以及Pig的任务),这些操作通过有向无环图的机制控制。这种控制依赖是说,一个操作的输入依赖于前一个任务的输出,只有前一个操作完全完成后,才能开始第二个。

Oozie工作流通过hPDL定义(hPDL是一种XML的流程定义语言)。工作流操作通过远程系统启动任务。当任务完成后,远程系统会进行回调来通知任务已经结束,然后再开始下一个操作。

Oozie工作流包含控制流节点以及操作节点

控制流节点定义了工作流的开始和结束(start,end以及fail的节点),并控制工作流执行路径(decision,fork,join节点)。操作节点是工作流触发计算\处理任务的执行,Oozie支持不同的任务类型——hadoop map reduce任务,hdfs,Pig,SSH,eMail,Oozie子工作流等等。Oozie可以自定义扩展任务类型。

Oozie工作流可以参数化的方式执行(使用变量${inputDir}定义)。当提交工作流任务的时候就需要同时提供参数。如果参数合适的话(使用不同的目录)就可以定义并行的工作流任务。

总结来说

  • Oozie是管理Hadoop作业的工作流调度系统
  • Oozie的工作流是一系列的操作图
  • Oozie协调作业是通过时间(频率)以及有效数据触发当前的Oozie工作流程
  • Oozie是针对Hadoop开发的开源工作流引擎,专门针对大规模复杂工作流程和数据管道设计
  • Oozie围绕两个核心:工作流和协调器,前者定义任务的拓扑和执行逻辑,后者负责工作流的依赖和触发。

WordCount工作流例子

hPDL流程的定义:

<workflow-app name='wordcount-wf' xmlns="uri:oozie:workflow:0.1">
    <start to='wordcount'/>
    <action name='wordcount'>
        <map-reduce>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.mapper.class</name>
                    <value>org.myorg.WordCount.Map</value>
                </property>
                <property>
                    <name>mapred.reducer.class</name>
                    <value>org.myorg.WordCount.Reduce</value>
                </property>
                <property>
                    <name>mapred.input.dir</name>
                    <value>${inputDir}</value>
                </property>
                <property>
                    <name>mapred.output.dir</name>
                    <value>${outputDir}</value>
                </property>
            </configuration>
        </map-reduce>
        <ok to='end'/>
        <error to='end'/>
    </action>
    <kill name='kill'>
        <message>Something went wrong: ${wf:errorCode('wordcount')}</message>
    </kill/>
    <end name='end'/>
</workflow-app>

参考

本文转自博客园xingoo的博客,原文链接:Oozie 快速入门,如需转载请自行联系原博主。

时间: 2024-10-24 01:07:16

Oozie 快速入门的相关文章

《R语言游戏数据分析与挖掘》一2.1 开发环境准备和快速入门

2.1 开发环境准备和快速入门 2.1.1 R语言简介 R语言的前身是S语言,S语言是由AT &T Bell实验室的Rick Becker.John Chambers和Allan Wilks开发的一种用来进行数据探索.统计分析.作图的解释型语言.最初S语言的实现版本主要是S-PLUS.S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善.而R语言最初由来自新西兰大学的Ross Ihaka和Robert Gentleman开发(由于他们的名字都以R开头,所以该软

数据库快速入门教程--视频

数据库快速入门教程--视频 下载地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240579 本课程是这个课程体系的核心之一,为软件开发人员所需数据库知识的学习教材,而不是培训一个DBA(数据库管理员),更具体的说是为Web开发程序员所需数据库知识的学习教材.基于培养程序员的目标,本课程对数据库和SQL语句的相关知识进行了深刻地阐明和分析,学习的重点是标准SQL语句的学习的掌握.常用数据库MySQL

json快速入门学习教程

JSON快速入门 计算机语言中三种数据 1.标量 一个单独的字符串或者数字 比如"成都":7  2.序列 若干相关的数据按一定的顺序并列在一起(数组或列表) 比如"北京,成都":7 8 9 3.映射 名/值对 即数据名称与相对应的值 又称散列(hash)或字典 字典等等 比如 "四川省会:成都" JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 JSON的四个基本规则 (1)并列的数据之刘用逗号(&quo

AJAX快速入门之HTTP协议基础

ajax|快速入门 要很好地领会Ajax技术的关键是了解超文本传输协议(HTTP),该协议用来传输网页.图像以及因特网上在浏览器与服务器间传输的其他类型文件.只要你在浏览器上输入一个URL,最前面的http://就表示使用HTTP来访问指定位置的信息. (大部分浏览器还支持其他一些不同的协议,其中FTP就是一个典型例子.) 注意:本文中只涉及HTTP协议,这是Ajax开发人员关心的方面,它可作为HTTP的参考手册或指南. HTTP由两部分组成:请求和响应.当你在Web浏览器中输入一个URL时,浏

HTML 4.0 语言快速入门参考教程

参考|教程|快速入门 所有的万维网文件都是由超文本标志语言HTML所创建的.在这种语言中,可以使用各种标记对文件进行处理.这些标记决定了文件内容的外观.结构以及交互性等方面,他们的共同之处就是都使用"<>",例如段落标记<p>,图片标记<imp>等. 在浏览器中,是看不到任何HTML标记的,但是在浏览器中所看到的网页效果却都是由这些标记生成的. 在大多数情况下,在创建站点时并不需要对HTML标记进行掌握,因为在FrontPage 2000这样的软件中

Ajax.Net快速入门

ajax|快速入门 现在的项目准备用ajax,用ajax.net实现,而不是atlas,所以先看下ajax.net,Ajax.Net现在的最新版本是AjaxPro5.11.4.2,下载地址是:www.schwarz-interactive.de 首先我们新建个项目,名字是AjaxPro,我用的是vs2005beta2版本. 右击站点名字点add reference添加对我们刚刚下载来的那个叫AjaxPro.2.dll的引用,如果你用的是vs2003,则添加对AjaxPro.dll的引用,然后我们

XML轻松学习手册(1)XML快速入门

xml|快速入门 前言 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XM

博阅RSS阅读器快速入门

rss|快速入门 博阅RSS阅读器是为信息时代尽快获取所需信息而打造的一款简单易用的RSS阅读器.通过它您可以管理.获取.阅读 格式的信息.管理信息就是您可以根据自己的需要来确定和管理信息来源,获取信息就是您可以根据自己的需要从定制的信息源中来更新获取信息,阅读信息是指您可以方便的在阅读器中查看信息列表.摘要和详细内容.总之,您可以通过博阅RSS阅读器及时的获得你所要的各种信息. 软件资料 软件名称:博阅RSS阅读器 软件版本:V1.0 软件大小:20.26 MB 软件性质:免费软件 支持平台:

ASP初学者怎样快速入门

初学|快速入门|初学|快速入门 大家好!今天我想对初学ASP的人说一说,怎样才能快速入门.第一,要持之以恒,坚持不懈,"水滴石穿".第二,要不怕苦,今天遇到难解决的问题就回避,那么问题会越来越多.第三,要一边看书一边编程,二者缺一不可.好了,今天先说一些思想问题,为以后做一下准备,在以后我会进一步和大家切磋关于ASP的话题.