Oozie 笔记
概要
- Oozie是一个工作流引擎,每个任务可以是MapReduce作业或者pig作业
- Oozie运行在 java servlet容器中
- Oozie 按照 DAG(有向无环图)调度一系列任务
- Oozie工作流由 HPDL(Hadoop process definition language)定义,一种xml流程定义语言
任务
Oozie 有三种类型的任务 , workflow coordinator bundle
三者的包含关系为workflow<coordinator<bundle
- workflow,工作流
- coordinator,调度任务,coordinator 把每个workflow当做一个 action,把多个action组织起来,规定触发频率和触发时间等
- bundle,是一堆 coordinator 的抽象
workflow
- 控制节点(control flow nodes) ,定义工作流 start end fail ,和路径机制 decision(抉择),fork(分支),join(汇合)
- 操作节点(action nodes),触发一个计算任务(Computation Task)或者处理任务(Processing Task)执行的节点
生命周期
- prep 就绪状态
- running 运行状态
- suspended 挂起running的工作流,可以因为种种原因被挂起,并且会一直处于这个状态,知道重写开始或者kill
- successed 成功状态,工作流成功运行到 end节点之后就会变成此状态
- killed 处于running 或者 suspended状态时被kill,将会变成 killed状态
- failed,不可预期的错误未终止时
常用命令
- 直接运行作业:oozie job -oozie http://localhost:11000/oozie -config job.properties -run
- 提交作业并让作业进入PREP状态:oozie job -oozie http://localhost:11000/oozie -config job.properties -submit
- 执行已提交的作业:oozie job -oozie http://localhost:11000/oozie -start jobID
- 杀死任务:oozie job -oozie http://localhost:11000/oozie -kill jobID
- 重新运行任务:oozie job -oozie http://localhost:11000/oozie -config job.properties -rerun jobID -D oozie.wf.rerun.failnodes=false
- 提交pig作业 oozie pig -oozie http://localhost:11000/oozie -file pigScriptFile -config job.properties -X -param_file params
- 提交MR作业 oozie mapreduce -oozie http://localhost:11000/oozie -config job.properties
配置文件简析
- job.properties 是入口文件,定义了一个任务
- workflow.xml :定义 workflow的配置文件
- coordinator.xml:定义coordinator的配置文件