Oozie简介

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

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

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

Apache Oozie Workflow Scheduler for Hadoop

Oozie is a workflow scheduler system to manage Apache Hadoop jobs.
Oozie 是一个工作流调度系统用来管理 Hadoop 任务
工作流调度:工作流程的编排,调度:安排事件的触发执行(时间触发,事件触发)

Oozie is integrated with the rest of the Hadoop stack supporting several types of Hadoop jobs out of the box (such as Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop and Distcp) as well as system specific jobs (such as Java programs and shell scripts).
Oozip 集成了 Hadoop 其他的几种协议(如 MapReduce Pig Hive Sqoop Distcp)和系统专有的任务(如 java程序 shell脚本)

底层是一个仅有 Map Task 的 MapReduce 程序

一、横向比较

1.Linux Crontab Linux自带的定时任务指令(写绝对路径)

特点:简单,结合 shell 脚本能实现大部分的功能
缺点:太简单了,没有监控界面

crontab: usage error: unrecognized option
usage:  crontab [-u user] file                              指向文件
        crontab [ -u user ] [ -i ] { -e | -l | -r }
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)                       指定编辑器
        -l      (list user's crontab)                       列表
        -r      (delete user's crontab)                     删除
        -i      (prompt before deleting user's crontab)     删除前提示
        
        
minute  hour    day     month   week    command
0-60    0-24    0-31    1-12    0-7( 0=7=周日 )       
( * ):所有可能的值
( , ):并列
( - ):范围
( / ):频率

eg:
# 每周六晚上8点-12点每30分钟加早上10点执行一次
0-60/30 20-7,8 * * 6 /bin/ls

2.AzKaban Linkedin 公司一个开源的工作流管理程序

特点:简单得一塌糊涂,又漂亮的不像实力派
缺点:...

Azkaban

3.Oozie Apache 顶级项目

特点:Apache 出品,强大
缺点:存在 jar 包冲突,长得不是一般的丑(程序员就不该有审美)

Oozie

4.Zeus 宙斯 阿里开源的框架(找不到了,阿里遗弃了?)

特点:比较简单,阿里出品,有中文文档,中文界面
缺点:小众,毕竟国内

关于Oozie(拷贝模板改之)

1.Oozie是 Cloudeara 公司共享给 Apache 的一个开源顶级项目,提供对 Hadoop MapReduce Hive Pig 的任务的调度;Oozie需要部署到一个 Java Servlet 容器中(如:Tomcat)运行,需要使用关系型数据库存储调度信息
2.Oozie 工作流的定义,同 Jboss jBPM 提供的 jPDL 一样,提供了类似流程定义语言 hPDL ,通过 XML 格式实现流程定义。对于工作流系统,一般都会有很多不同的功能节点,如分支、并发、汇合等
3.Oozie 定义了控制流节点 Control Flow Nodes 动作节点 Action Nodes 。其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径( Execution Path ) ,如 decision / fork / join 等;而动作节点包括 Hadoop MapReduce / HDFS / Pig / SSH / HTTP / eMail / Oozie 子流程等。

关于各个版本的架构(重点)

Oozie v1 is a server based Workflow Engine 工作流引擎 specialized专门 in running workflow jobs with actions that execute Hadoop Map/Reduce and Pig jobs.

Oozie v2 is a server based Coordinator Engine 协调引擎 specialized in running workflows based on time and data triggers(时间触发 数据触发). It can continuously不断地 run workflows based on time (e.g. run it every hour), and data availability (e.g. wait for my input data to exist before running my workflow).

Oozie v3 is a server based Bundle Engine 绑定引擎 that provides a higher-level oozie abstraction抽象 that will batch批量 a set of coordinator applications. The user will be able to start/stop/suspend暂停/resume继续/rerun a set coordinator jobs in the bundle level(捆绑包层次) resulting a better and easy operational control.
v3提供了一个更高级别的抽象Oozie,将批处理一组协调应用程序。

整体服务框架

  • 左侧:Oozie 通过 Tomcat Http Server 对外提供了 JAVA API 、REST API 、CLI(终端) 、Web 接口(hue) ;产生的数据存储在 Oozie object dstabase 上
  • 中间:Oozie 的三层结构
  • 右侧:Oozie 的 Coordinator Engine 协调引擎 能够监控基于 Time-based triggers 和 HDFS 上的 Data-based triggers;每一个 Oozie Job 都是一个只有 Map Task 的 MapReduce 程序
http://www.cnblogs.com/cenzhongman/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值