Hadoop生態圈之Oozie(一)

Apache Oozie

​ Oozie 是一個用來管理 Hadoop 生態圈 job 的工作流調度系統。由 Cloudera 公司貢獻給 Apache。 Oozie 是運行於 Java servlet 容器上的一個 java web 應用。 Oozie 的目的是按照 DAG(有向無環圖) 調度一系列的 Map/Reduce 或者 Hive 等任務。 Oozie 工作流由 hPDL(Hadoop Process Definition Language)定義 (這是一種 XML 流程定義語言)。

Oozie 的架構

 

  • Oozie Client

    • 提供命令行、 java api、 rest 等方式,對 Oozie 的工作流流程的提交、啓動、運行等操作;

  • Oozie WebApp

    • 即 Oozie Server,本質是一個 java 應用。可以使用內置的 web 容器, 也可以使用外置的 web 容器;

  • Hadoop Cluster:

    • 底層執行 Oozie 編排流程的各個 hadoop 生態圈組件;

Oozie 基本原理

​ Oozie 對工作流的編排, 是基於 workflow.xml 文件來完成的。用戶預先將工作流執行規則定製於 workflow.xml 文件中,並在 job.properties 配置相關的參數, 然後由 Oozie Server 向 MR 提交 job 來啓動工作流。

 

Oozie 工作流類型

  • Workflow

    • 規則相對簡單,不涉及定時、批處理的工作流。順序執行流程節點。

    • workflow有個大缺點:沒有定時和條件觸發功能

     

  • Coordinator

    • Coordinator 將多個工作流 Job 組織起來,稱爲 Coordinator Job,並指定觸發時間和頻率,還可以配置數據集、併發數等,類似於在工作流外部增加了一個協調器來管理這些工作流的工作流 Job 的運行。

 

  • Bundle

    • 針對 coordinator 的批處理工作流。

    • Bundle 將多個 Coordinator 管理起來,這樣我們只需要一個 Bundle 提交即可。

 

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