Apache Oozie是工作流調(diào)度用在Hadoop中。它是一個(gè)運(yùn)行相關(guān)的作業(yè)工作流系統(tǒng)。這里,用戶被允許創(chuàng)建向非循環(huán)圖工作流程,其可以在并列 Hadoop 并順序地運(yùn)行。
它由兩部分組成:
Oozie可擴(kuò)展性和可管理及時(shí)執(zhí)行成千上萬(wàn)的工作流程(每個(gè)由幾十個(gè)作業(yè))的Hadoop集群。
Oozie 也非常靈活。人們可以很容易啟動(dòng),停止,暫停和重新運(yùn)行作業(yè)。Oozie 可以很容易地重新運(yùn)行失敗的工作流??梢院苋菀字刈鲆蝈礄C(jī)或故障錯(cuò)過(guò)或失敗的作業(yè)。甚至有可能跳過(guò)一個(gè)特定故障節(jié)點(diǎn)。
Oozie 運(yùn)行作為集群服務(wù),客戶端提交的工作流定義:立即或以后處理。
Oozie 工作流由動(dòng)作節(jié)點(diǎn)和控制流的節(jié)點(diǎn)組成。
一個(gè)操作節(jié)點(diǎn)代表一個(gè)工作流任務(wù),例如,移動(dòng)文件到HDFS,運(yùn)行 MapReduce,Pig 或 Hive 作業(yè),使用 Sqoop 導(dǎo)入數(shù)據(jù)或 運(yùn)行Java 編寫程序的 shell 腳本。
一個(gè)控制流節(jié)點(diǎn)通過(guò)允許像條件邏輯結(jié)構(gòu),不同的分支可以根據(jù)較早動(dòng)作節(jié)點(diǎn)的結(jié)果,隨后執(zhí)行動(dòng)作工作流程。
開始節(jié)點(diǎn),終端節(jié)點(diǎn)和錯(cuò)誤節(jié)點(diǎn)屬于這一類節(jié)點(diǎn)。
開始節(jié)點(diǎn), 指定的工作流程作業(yè)的開始。
結(jié)束節(jié)點(diǎn), 作業(yè)的結(jié)束信號(hào)。
錯(cuò)誤節(jié)點(diǎn), 指定要打印錯(cuò)誤和相應(yīng)的錯(cuò)誤信息的發(fā)生。
在執(zhí)行工作流的結(jié)束, HTTP 回調(diào)用于通過(guò) Oozie 更新客戶端與工作流狀態(tài)。入門或出口,從動(dòng)作節(jié)點(diǎn)還可能會(huì)觸發(fā)回調(diào)。
工作流程圖示例

使用Oozie的主要目的是為了管理不同類型的作業(yè)在Hadoop系統(tǒng)中處理。
作業(yè)之間的依賴關(guān)系是由用戶向無(wú)環(huán)圖的形式指定。Oozie 的消費(fèi)信息以及在工作流中指定負(fù)責(zé)其執(zhí)行的順序正確。這樣,用戶同時(shí)管理保存整個(gè)工作流程。此外 Oozie 有指定執(zhí)行特定工作頻率規(guī)定。