阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oozie 快速入门

97次阅读
没有评论

共计 2436 个字符,预计需要花费 7 分钟才能阅读完成。

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

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 工作流例子

Oozie 快速入门

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>

参考

  • oozie 入门介绍

下面关于 Oozie 的文章您也可能喜欢,不妨看看:

Oozie4.0.1 详细安装教程  http://www.linuxidc.com/Linux/2014-12/110456tm

指定 Oozie Java 节点的 Hadoop 属性 http://www.linuxidc.com/Linux/2014-06/103617.htm

Hadoop 平台上 Oozie 调度系统的安装配置 http://www.linuxidc.com/Linux/2014-04/100382.htm

Oozie 中运行 mapreduce node-action 时的常见异常解决方法 http://www.linuxidc.com/Linux/2014-02/96685.htm

Oozie web-console 时间本地化 http://www.linuxidc.com/Linux/2012-11/74797.htm

Hadoop Oozie 学习笔记 使用 Oozie, 通过命令行运行 example http://www.linuxidc.com/Linux/2012-08/67029.htm

Hadoop Oozie 学习笔记 自定义安装和启动 http://www.linuxidc.com/Linux/2012-08/67028.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137322.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2436字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中