大數據Oozie是是什麼?

  


  市場對於大數據人才的需求越來越多,很多人開始步入到學習大數據的領域。對於大數據的學習,自然無法避開Oozie,所以我們不妨來系統的認識一下什麼是Oozie,Oozie的應用場景有哪些?

  關於什麼是Oozie,其實Oozie是服務於Hadoop生態系統的工作流調度工具,Job運行平臺是區別於其他調度工具的最大的不同。但其實現的思路跟一般調度工具幾乎完全相同。Oozie工作流通過HPDL(一種通過XML自定義處理的語言,類似JBOSS JBPM的JPDL)來構造。Oozie工作流中的Action在運程系統運行如(Hadoop,Pig服務器上)。一旦Action完成,遠程服務器將回調Oozie的接口 並通知Action已經完成,這時Oozie又會以同樣的方式執行工作流中的下一個Action,直到工作流中所有Action都完成(完成包括失敗)。Oozie工作流提供各種類型的Action用於支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java以及Oozie子流程。Oozie也支持自定義擴展以上各種類型的Action。

  一個正常工作的Oozie系統須包含如下四個模塊:Oozie Client、Oozie Server、DataBase和Hadoop集羣。

  Oozie Client可以通過Web Service API、Java API、Command line 方式向Oozie  Server提交工作流任務請求。Oozie客戶端可以通過REST API或者Web GUI來從Oozie服務端獲取Job的日誌流。通常在Client端包括工作流配置文件、工作流屬性文件和工作流庫。

  Oozie Server負責接收客戶端請求、調度工作任務、監控工作流的執行狀態。Oozie本身不會執行具體的Job,而是將Job的配置信息發送到執行環境。

  DataBase用於存儲Bundle、Coordinator、Workflow工作流的Action信息、Job信息,記錄Oozie系統信息。簡單說,除了Oozie 運行日誌存在本地硬盤不存在DB中,其他信息都存儲到DB。

  Hadoop集羣運行Oozie工作流的實體,負責處理Oozie Server提交來的各種Job。包括HDFS、MapReduce、Hive、Sqoop等Hadoop組件提交的Job。

  講了這麼多關於Oozie的概念,下面我們來了解一下Oozie 是如何工作的?

  Oozie 運行作爲集羣服務,客戶端提交的工作流定義:立即或以後處理。Oozie 工作流由動作節點和控制流的節點組成。一個操作節點代表一個工作流任務,例如,移動文件到HDFS,運行 MapReduce,Pig 或 Hive 作業,使用 Sqoop 導入數據或 運行Java 編寫程序的 shell 腳本。一個控制流節點通過允許像條件邏輯結構,不同的分支可以根據較早動作節點的結果,隨後執行動作工作流程。

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

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

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

  錯誤節點, 指定要打印錯誤和相應的錯誤信息的發生。

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

  Oozie只是大數據內容的一個,對於學習大數據的人而言,學好這一點非常重要,未來大數據的應用必將深入到各個領域當中,而你如果能夠掌握大數據的每一個知識點,那麼你必將會成爲大數據界的大牛,高薪、高福利也將隨之而來。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章