http://oozie.apache.org
https://github.com/apache/oozie

与Hadoop有关的Apache Oozie Workflow Scheduler是一个管理Apache Hadoop作业(jobs)的工作流和协调服务:

  • Oozie Workflow作业是动作(action)的有向无周期图(DAGs, Directed Acyclical Graphs);action通常是Hadoop作业(MapReduce、Streaming、Pipes、Pig、Hive、Sqoop等)。
  • Oozie Coordinator 作业根据时间(频率)和数据可用性触发周期性的工作流作业。
  • Oozie Bundle 作业是作为单个作业管理的协调器作业集。

Oozie是一种可扩展的(extensible)、可伸缩的(scalable)、支持数据(data-aware)的服务,您可以使用它来编排运行在Hadoop上的作业之间的依赖关系。

Oozie由Cloudera公司贡献给Apache的基于工作流引擎的开源框架,是用于Hadoop平台的开源的工作流调度引擎,是用来管理Hadoop作业,属于web应用程序,由Oozie client和Oozie Server两个组件构成,Oozie Server运行于Java Servlet容器(Tomcat)中的web程序。

文档v4.0.0

http://oozie.apache.org/docs/4.0.0/index.html
Oozie v3是一个基于服务器的捆绑包引擎(Bundle Engine),它提供了一个更高级别的Oozie抽象,可以批量处理一组协调器应用程序。用户将能够在绑定包级别启动/停止/挂起/恢复/重新运行a set coordinator作业,从而实现更好、更容易的操作控制。

Oozie v2是一个基于服务器的协调引擎(Coordinator Engine),专门运行基于时间和数据触发器的工作流。它可以根据时间(例如每小时运行一次)和数据可用性(例如,在运行工作流之前等待输入数据的存在)持续运行工作流。
Oozie v1是一个基于服务器的工作流引擎(Workflow Engine),专门运行带有执行Hadoop Map/Reduce和Pig作业的操作的工作流作业。

发行版内容 - Distribution Contents

Oozie distribution consists of a single ‘tar.gz’ file containing:

  • Readme, license, notice & Release log files.
  • Oozie server: oozie-server directory.
  • Scripts: bin/ directory, client and server scripts.
  • Binaries: lib/ directory, client JAR files.
  • Configuration: conf/ server configuration directory.
  • Archives:
    • oozie-client-*.tar.gz : Client tools.
    • oozie.war : Oozie WAR file.
    • docs.zip : Documentation.
    • oozie-examples-*.tar.gz : Examples.
    • oozie-sharelib-*.tar.gz : Share libraries (with Streaming, Pig JARs).

快速启动 - Quick Start

Enough reading already? Follow the steps in Oozie Quick Start to get Oozie up and running.

开发文档 - Developer Documentation

Action Extensions

管理员文档 - Administrator Documentation

Licensing Information

Oozie is distributed under Apache License 2.0 .
For details on the license of the dependent components, refer to the Dependencies Report, Licenses section .
Oozie bundles an embedded Apache Tomcat 6.x.
Some of the components in the dependencies report don’t mention their license in the published POM. They are:

Oozie uses a modified version of the Apache Doxia core and twiki plugins to generate Oozie documentation.

Engineering Documentation

类似应用

azkaban

https://azkaban.github.io/

介绍

Azkaban是一个分布式工作流管理器(a distributed Workflow Manager),LinkedIn实现它来解决Hadoop作业依赖的问题。我们的工作(jobs)需要按顺序运行,从ETL工作到数据分析产品。

特性 - Features

  • Distributed Multiple Executor
  • MySQL Retry
  • Friendly UI
  • Conditional Workflow
  • Data Triggers
  • High Security
  • Support plug-in extensions, from Web UI to job Execution
  • Full Authorship management system

与oozie对比

  • 功能对比
    Azkaban和Oozie都可以调用像linux、mapreduce、pig、spark、java等脚本工作流任务;都可以设置任务来执行。
  • 工作流定义对比
    Azkaban使用Properties文件定义工作流;
    Oozie使用XML文件定义工作流。
  • 工作流传参对比
    Azkaban支持直接传参,例如${input};
    Oozie支持参数和EL表达式两种方式,例如${fs:dirSize(myInputDir)}。
  • 定时任务对比
    Azkaban的定时执行任务是基于时间的;
    Oozie的定时执行任务基于时间和输入数据两种方式,功能强大,但是带来配置的复杂度比较高。
  • 资源管理对比
    Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作;
    Oozie暂无严格的权限控制,多人协作就比较麻烦了。
  • 工作流对比
    Azkaban有三种运行模式:solo server mode、 two server mode、multiple executor mode。
    Oozie作为工作流服务器运行,支持多用户和多工作流。
  • 工作流管理对比
    Azkaban支持浏览器以及ajax方式操作工作流;
    Oozie支持命令行、HTTP REST、Java API、浏览器操作工作流。