任務調度工具oozie和azkaban的對比


 

 

1.工作流調度工具:(azkaban 和oozie的對比)

工作流調度:一個完整的數據分析系統通常都是由大量任務單元組成:shell腳本程序,java程序,mapreduce程序、hive腳本等,各任務單元之間存在時間先后及前后依賴關系。為了很好地組織起這樣的復雜執行計划,需要一個工作流調度系統來調度執行。

調度工具性能對比:Apache Oozie,其配置工作流的過程是編寫大量的XML配置,而且代碼復雜度比較高,不易於二次開發。ooize相比azkaban是一個重量級的任務調度系統,功能全面,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。

 

OozieAzkaban的區別:

兩者在功能方面大致相同,只是Oozie底層在提交Hadoop Spark作業是通過org.apache.hadoop的封裝好的接口進行提交,而Azkaban可以直接操作shell語句。在安全性上可能Oozie會比較好。

工作流定義:Oozie是通過xml定義的而Azkaban為properties來定義。

部署過程:Oozie的部署相對困難些,同時它是從Yarn上拉任務日志。

Azkaban中如果有任務出現失敗,只要進程有效執行,那么任務就算執行成功,這是BUG,但是Oozie能有效的檢測任務的成功與失敗。

操作工作流:Azkaban使用Web操作。Oozie支持Web,RestApi,Java API操作。

權限控制:Oozie基本無權限控制,Azkaban有較完善的權限控制,供用戶對工作流讀寫執行操作。

Oozie的action主要運行在hadoop中而Azkaban的actions運行在Azkaban的服務器中。

記錄workflow的狀態:Azkaban將正在執行的workflow狀態保存在內存中,Oozie將其保存在Mysql中。

出現失敗的情況:Azkaban會丟失所有的工作流,但是Oozie可以在繼續失敗的工作流運行

2.調度工具介紹:(azkaban 和oozie)

Azkaban介紹

Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。 
它有如下功能特點: 
1.Web用戶界面 
2.方便上傳工作流 
3.方便設置任務之間的關系 
4.調度工作流 
5.認證/授權(權限的工作) 
6.能夠殺死並重新啟動工作流 
7.模塊化和可插拔的插件機制 
8.項目工作區 
9.工作流和任務的日志記錄和審計

Oozie介紹

Oozie工作流是放置在控制依賴DAG(有向無環圖 Direct Acyclic Graph)中的一組動作(例如,Hadoop的Map/Reduce作業、Pig作業等),其中指定了動作執行的順序。我們會使用hPDL(一種XML流程定義語言)來描述這個圖。

hPDL是一種很簡潔的語言,只會使用少數流程控制和動作節點。控制節點會定義執行的流程,並包含工作流的起點和終點(start、end和fail節點)以及控制工作流執行路徑的機制(decision、fork和join節點)。動作節點是一些機制,通過它們工作流會觸發執行計算或者處理(如下圖)

3.Azkaban和Oozie的基本操作

Azkaban

Azkaban的工作流的創建特別方便,直接通過web界面創建工程,然后提交任務。(創建job的的文件必須是以.job的文件,並且上傳的文件是以zip壓縮包的形式進行上傳)。

   創建工作流的基本流程:

(1)創建工程,提交任務。

 

 

(2)任務提交完成之后bar.job和foo.job之間的依賴關系顯示在web 界面當中。

 

 

(3)然后執行相應提交的任務。如下圖兩者的對應關系,可以直接執行單個的任務,也可以指定定時任務。可設置定時任務的執行時間。同時可以在定時執行完成之后做相應的提醒服務。

 

 

 

 

 

 

 

Oozie的基本操作:

操作准備;

job.properties

任務的一些配置文件,例如運行的HDFS以及JobTracker

(ResourceManager)等

Lib

存放執行的JAR包

Workflow.xml

工作流的依賴

****.jar

執行任務的jar包(自定義的文件)

 

 

在ooize的client端執行:

Oozie job --oozie http://ip:11000/oozie -config ${job.properties} -run

執行之后,可以在web頁面查詢執行的結果。

4.在hue當中操作ooize的操作

在hue當中操作ooize的操作:

Hue是一個可快速開發和調試Hadoop生態系統各種應用的一個基於瀏覽器的圖形化用戶接口。

Hue可實現對oozie任務的開發,監控,和工作流協調調度 。使的oozie的操作變得更加的簡單快捷。

(1)    創建工作流

 

 

 

運行完成產生相對應的xml文件和相對的日志信息:

 

添加到定制執行任務。指定定時任務。

 


免責聲明!

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



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