Oozie是什么?


 

   但是,一般用Azkaban了。(具體見我寫的另一篇博客:)

 

 

 官網:https://oozie.apache.org/

 

 

Oozie is a workflow scheduler system to manage Apache Hadoop jobs.

Oozie Workflow jobs are Directed Acyclical Graphs (DAGs) of actions.

Oozie Coordinator jobs are recurrent Oozie Workflow jobs triggered by time (frequency) and data availability.

Oozie is integrated with the rest of the Hadoop stack supporting several types of Hadoop jobs out of the box (such as Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop and Distcp) as well as system specific jobs (such as Java programs and shell scripts).

Oozie is a scalable, reliable and extensible system.

 

 

   一個Oozie的job,是一個mapreduce程序,特殊點呢,僅僅是只有Map Task。

 

 

 

Oozie是用於 Hadoop 平台的開源的工作流調度引擎
    是用來管理Hadoop作業。
    是屬於web應用程序,由Oozie client和Oozie Server兩個組件構成。
Oozie Server運行於Java Servlet容器(Tomcat)中的web程序。

 

 

 

  Oozie起源於雅虎,主要用於管理與組織Hadoop工作流。Oozie的工作流必須是一個有向無環圖,實際上Oozie就相當於Hadoop的一個客戶端,當用戶需要執行多個關聯的MR任務時,只需要將MR執行順序寫入workflow.xml,然后使用Oozie提交本次任務,Oozie會托管此任務流。

         

 

<workflow-app xmlns="uri:oozie:workflow:0.3" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>echo</exec>
<argument>hi shell in oozie</argument>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Map/Reduce failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>

 

 

 

 Oozie簡介

  現實業務中處理數據時不可能只包含一個MR操作,一般都是多個MR,並且中間還可能包含多個Java或HDFS,甚至是shell的操作,利用Oozie可以完成這些任務。

實際上Oozie不是僅用來配置多個MR工作流的,它可以是各種程序夾雜在一起的工作流,比如執行一個MR1后,接着執行一個java腳本,再執行一個shell腳本,接着是Hive腳本,然后又是Pig腳本,最后又執行了一個MR2,使用Oozie可以輕松完成這種多樣的工作流。使用Oozie時,若前一個任務執行失敗,后一個任務將不會被調度。

 

 

 

 

 

 

工作流調度框架Oozie

  • 工作流

    import  -> 

    hive -> export

  • 調度

    作業 / 任務  定時執行

    事件觸發執行

      時間(比如說。每天晚上10點到凌晨2點之間,沒半個小時運行一次。比如說,每周五的晚上8點觸發一次)

      數據集(比如說。某個目錄文件下有數據,就觸發一次)

 

 

 

 

 

 

 

Oozie概述001.png-27.3kB

 

 

Oozie is a workflow scheduler system to manage Apache Hadoop jobs.

Oozie Workflow jobs are Directed Acyclical Graphs (DAGs) of actions.

 

 

 Oozie Coordinator jobs are recurrent Oozie Workflow jobs triggered by time (frequency) and data availabilty.

 

 

 

 

 Oozie is integrated with the rest of the Hadoop stack supporting several types of Hadoop jobs out of the box (such as Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop and Distcp) as well as system specific jobs (such as Java programs and shell scripts).

 

 

 

 

Oozie is a scalable, reliable and extensible system.

 

 

  1,一個基於工作流引擎的開源框架,是由Cloudera公司貢獻給Apache的,它能夠提供對Hadoop Mapreduce和Pig Jobs的任務調度與協調。Oozie需要部署到Java Servlet容器中運行。

  2,Oozie工作流定義,同Jboss jBPM提供的jPDL一樣,提供了類似的流程定義語言hPDL,通過XML文件格式來實現流程的定義。對於工作流系統,一般會有很多不同功能的節點,比如分支,並發,匯合等等。

  3,Oozie定義了控制流節點(Control Flow Nodes)和動作節點(Action Nodes),其中控制流節點定義了流程的開始和結束,以及控制流程的執行路徑(Execution Path),如decision,fork,join等;而動作節點包括Haoop map-reduce hadoop文件系統,Pig,SSH,HTTP,eMail和Oozie子流程

 

 

 

 

 

 

Oozie Server Architecture

 

 

 

 

 

 

 

 

Oozie Server Components 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM