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 有規定作業完成後可發送電子郵件通知