Oozie简介
Oozie是一个基于工作流引擎的服务器,可以在上面运行Hadoop的Map Reduce和Pig任务。它其实就是一个运行在Java Servlet容器(比如Tomcat)中的Javas Web应用。
在官网中,我们看到Oozie的Logo设计可以知道Oozie本来就是一个任务调度连续的工作流程。
- Oozie是一个管理Apache Hadoop作业的工作流调度程序系统。
- Oozie工作流作业是操作的直接非周期图(DAGs)。
- Oozie协调器作业是由时间(频率)和数据可用性触发的周期性Oozie工作流作业。
- Oozie与Hadoop堆栈的其他部分集成在一起,支持几种类型的Hadoop开箱即用作业(如Java map-reduce、流映射-reduce、Pig、Hive、Sqoop和Distcp),以及系统特定的作业(如Java程序和shell脚本)。
- Oozie是一个可伸缩、可靠和可扩展的系统。
Oozie特点
- Oozie 客户端 API 以及命令行界面可以用来启动,控制和监视Java应用程序作业
- 使用其Web服务的API可以从任何位置控制作业
- Oozie有规定执行这些计划定期来运行作业
- Oozie 有规定作业完成后可发送电子邮件通知
Oozie的节点类型
Oozie的节点类型包括控制流节点(control flow nodes) 和行为节点(action nodes)
- 控制流节点(control flow nodes):定义任务的拓扑和执行逻辑
分为: start end kill decision fork join.其中start end kill 代表了工作流的起始及国祚流执行逻辑 - 行为节点(action nodes) :负责工作流的依赖和触发
分为Action Basis,Map-Reduce Action,Pig Action,Fs (HDFS) action,Ssh Action,Sub-workflow Action,Java Action,其他扩展的 Action
Oozie工作原理
Oozie是工作流调度用在Hadoop中。它是一个运行相关的作业工作流系统。这里,用户被允许创建向非循环图工作流程,其可以在并列 Hadoop 并顺序地运行。Oozie组成包括:**工作流引擎(Workflow)和协调器引擎(Schedule)**两部分组成
- 工作流引擎(Workflow):一个工作流引擎的职责是存储和运行工作流程,由 Hadoop 作业组成:MapReduce, Pig, Hive;
- 协调器引擎(Schedule):它运行基于预定义的时间表和数据的可用性工作流程作业。