OOZIE 五分鐘入門學習


OOZIE 是什麼鬼?

Apache Oozie是工作流排程用在Hadoop中。它是一個執行相關的作業工作流系統。這裡,使用者被允許建立向非迴圈圖工作流程,其可以在並列 Hadoop 並順序地執行。

它由兩部分組成:

  • 工作流引擎:一個工作流引擎的職責是儲存和執行工作流程,由 Hadoop 作業組成:MapReduce, Pig, Hive.
  • 協調器引擎:它執行基於預定義的時間表和資料的可用性工作流程作業。

Oozie可延伸性和可管理及時執行成千上萬的工作流程(每個由幾十個作業)的Hadoop叢集。

Oozie 也非常靈活。人們可以很容易啟動,停止,暫停和重新執行作業。Oozie 可以很容易地重新執行失敗的工作流。可以很容易重做因宕機或故障錯過或失敗的作業。甚至有可能跳過一個特定故障節點。

Oozie 如何工作?

Oozie 執行作為叢集服務,用戶端提交的工作流定義:立即或以後處理。

Oozie 工作流由動作節點和控制流的節點組成。

一個操作節點代表一個工作流任務,例如,移動檔案到HDFS,執行 MapReduce,Pig 或 Hive 作業,使用 Sqoop 匯入資料或 執行Java 編寫程式的 shell 指令碼。

一個控制流節點通過允許像條件邏輯結構,不同的分支可以根據較早動作節點的結果,隨後執行動作工作流程。

開始節點,終端節點和錯誤節點屬於這一類節點。

開始節點, 指定的工作流程作業的開始。

結束節點, 作業的結束信號。

錯誤節點, 指定要列印錯誤和相應的錯誤資訊的發生。

在執行工作流的結束, HTTP 回撥用於通過 Oozie 更新用戶端與工作流狀態。入門或出口,從動作節點還可能會觸發回撥。

工作流程圖範例

為什麼要使用 Oozie ?

使用Oozie的主要目的是為了管理不同型別的作業在Hadoop系統中處理。

作業之間的依賴關係是由使用者向無環圖的形式指定。Oozie 的消費資訊以及在工作流中指定負責其執行的順序正確。這樣,使用者同時管理儲存整個工作流程。此外 Oozie 有指定執行特定工作頻率規定。

Oozie的特點

  • Oozie 用戶端 API 以及命令列介面可以用來啟動,控制和監視Java應用程式作業
  • 使用其Web服務的API可以從任何位置控制作業
  • Oozie有規定執行這些計劃定期來執行作業
  • Oozie 有規定作業完成後可傳送電子郵件通知