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

 

 

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

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

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

 

OozieAzkaban的區別:

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

工做流定義:Oozie是經過xml定義的而Azkaban爲properties來定義。sql

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

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

操做工做流: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文件和相對的日誌信息:

 

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

相關文章
相關標籤/搜索