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 ?

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

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

Oozie的特點

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