工作流調(diào)度器azkaban
概述
為什么需要工作流調(diào)度系統(tǒng)
● 一個完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務單元組成:
shell腳本程序铃在,java程序,mapreduce程序、hive腳本等
● 各任務單元之間存在時間先后及前后依賴關系
● 為了很好地組織起這樣的復雜執(zhí)行計劃定铜,需要一個工作流調(diào)度系統(tǒng)來調(diào)度執(zhí)行阳液;
例如,我們可能有這樣一個需求揣炕,某個業(yè)務系統(tǒng)每天產(chǎn)生20G原始數(shù)據(jù)帘皿,我們每天都要對其進行處理,處理步驟如下所示:
1畸陡、 通過Hadoop先將原始數(shù)據(jù)同步到HDFS上鹰溜;
2、 借助MapReduce計算框架對原始數(shù)據(jù)進行轉(zhuǎn)換丁恭,生成的數(shù)據(jù)以分區(qū)表的形式存儲到多張Hive表中曹动;
3、 需要對Hive中多個表的數(shù)據(jù)進行JOIN處理牲览,得到一個明細數(shù)據(jù)Hive大表墓陈;
4、 將明細數(shù)據(jù)進行復雜的統(tǒng)計分析第献,得到結果報表信息贡必;
5、 需要將統(tǒng)計分析得到的結果數(shù)據(jù)同步到業(yè)務系統(tǒng)中痊硕,供業(yè)務調(diào)用使用赊级。
工作流調(diào)度實現(xiàn)方式
簡單的任務調(diào)度:直接使用linux的crontab來定義;
復雜的任務調(diào)度:開發(fā)調(diào)度平臺
或使用現(xiàn)成的開源調(diào)度系統(tǒng)岔绸,比如ooize、azkaban等
常見工作流調(diào)度系統(tǒng)
市面上目前有許多工作流調(diào)度器
在hadoop領域橡伞,常見的工作流調(diào)度器有Oozie, Azkaban,Cascading,Hamake等
各種調(diào)度工具特性對比
下面的表格對上述四種hadoop工作流調(diào)度器的關鍵特性進行了比較盒揉,盡管這些工作流調(diào)度器能夠解決的需求場景基本一致,但在設計理念兑徘,目標用戶刚盈,應用場景等方面還是存在顯著的區(qū)別,在做技術選型的時候挂脑,可以提供參考
Azkaban與Oozie對比
對市面上最流行的兩種調(diào)度器藕漱,給出以下詳細對比,以供技術選型參考崭闲±吡總體來說,ooize相比azkaban是一個重量級的任務調(diào)度系統(tǒng)刁俭,功能全面橄仍,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調(diào)度器azkaban是很不錯的候選對象侮繁。
詳情如下:
◆ 功能
兩者均可以調(diào)度mapreduce,pig,java,腳本工作流任務
兩者均可以定時執(zhí)行工作流任務
◆ 工作流定義
Azkaban使用Properties文件定義工作流
Oozie使用XML文件定義工作流
◆ 工作流傳參
Azkaban支持直接傳參虑粥,例如${input}
Oozie支持參數(shù)和EL表達式,例如${fs:dirSize(myInputDir)}
◆ 定時執(zhí)行
Azkaban的定時執(zhí)行任務是基于時間的
Oozie的定時執(zhí)行任務基于時間和輸入數(shù)據(jù)
◆ 資源管理
Azkaban有較嚴格的權限控制宪哩,如用戶對工作流進行讀/寫/執(zhí)行等操作
Oozie暫無嚴格的權限控制
◆ 工作流執(zhí)行
Azkaban有兩種運行模式娩贷,分別是solo server mode(executor server和web server部署在同一臺節(jié)點)和multi server mode(executor server和web server可以部署在不同節(jié)點)
Oozie作為工作流服務器運行,支持多用戶和多工作流
◆ 工作流管理
Azkaban支持瀏覽器以及ajax方式操作工作流
Oozie支持命令行锁孟、HTTP REST育勺、Java API、瀏覽器操作工作流
Azkaban介紹
Azkaban是由Linkedin開源的一個批量工作流任務調(diào)度器罗岖。用于在一個工作流內(nèi)以一個特定的順序運行一組工作和流程涧至。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流桑包。
它有如下功能特點:
◇ Web用戶界面
◇ 方便上傳工作流
◇ 方便設置任務之間的關系
◇ 調(diào)度工作流
◇ 認證/授權(權限的工作)
◇ 能夠殺死并重新啟動工作流
◇ 模塊化和可插拔的插件機制
◇ 項目工作區(qū)
◇ 工作流和任務的日志記錄和審計