更新时间:2024-08-03 GMT+08:00

Oozie应用开发简介

Oozie简介

Oozie是一个用来管理Hadoop job任务的工作流引擎,Oozie流程基于有向无环图(Directed Acyclical Graph)来定义和描述,支持多种工作流模式及流程定时触发机制。易扩展、易维护、可靠性高,与Hadoop生态系统各组件紧密结合。

Oozie流程的三种类型:

  • Workflow

    描述一个完整业务的基本流程。

  • Coordinator

    Coordinator流程构建在Workflow流程之上,实现了对Workflow流程的定时触发、按条件触发功能。

  • Bundle

    Bundle流程构建在coordinator流程之上,提供对多个Coordinator流程的统一调度、控制和管理功能。

Oozie主要特点:

  • 支持分发、聚合、选择等工作流程模式。
  • 与Hadoop生态系统各组件紧密结合。
  • 流程变量支持参数化。
  • 支持流程定时触发。
  • 自带一个Web Console,提供了流程查看、流程监控、日志查看等功能。

Oozie应用开发常见概念

  • 流程定义文件

    描述业务逻辑的XML文件,包括“workflow.xml”“coordinator.xml”“bundle.xml”三类,最终由Oozie引擎解析并执行。

  • 流程属性文件

    流程运行期间的参数配置文件,对应文件名为“job.properties”,每个流程定义有且仅有一个该属性文件。

  • keytab文件

    存放用户信息的密钥文件。在安全模式下,应用程序采用此密钥文件进行API方式认证。

  • Client

    客户端直接面向用户,可通过Java API、Shell API、 REST API或者Web UI访问Oozie服务端。