常見工作流調度系統
Oozie, Azkaban, Cascading, Hamake
各種調度工具特性對比
特性 |
Hamake |
Oozie |
Azkaban |
Cascading |
工作流描述語言 |
XML |
XML (xPDL based) |
text file with key/value pairs |
Java API |
依賴機制 |
data-driven |
explicit |
explicit |
explicit |
是否要web容器 |
No |
Yes |
Yes |
No |
進度跟蹤 |
console/log messages |
web page |
web page |
Java API |
Hadoop job調度支持 |
no |
yes |
yes |
yes |
運行模式 |
command line utility |
daemon |
daemon |
API |
Pig支持 |
yes |
yes |
yes |
yes |
事件通知 |
no |
no |
no |
yes |
需要安裝 |
no |
yes |
yes |
no |
支持的hadoop版本 |
0.18+ |
0.20+ |
currently unknown |
0.18+ |
重試支持 |
no |
workflownode evel |
yes |
yes |
運行任意命令 |
yes |
yes |
yes |
yes |
Amazon EMR支持 |
yes |
no |
currently unknown |
yes |
Azkaban與Oozie對比
ooize相比azkaban是一個重量級的任務調度系統,功能全面,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。
詳情如下:
1、功能
都可以調度mapreduce、pig、java、腳本等工作流任務和執行工作流任務
2、工作流定義
Azkaban使用Properties文件定義工作流,Oozie使用XML文件定義工作流
3、工作流傳參
Azkaban支持直接傳參,例如${input},Oozie支持參數和EL表達式,例如${fs:dirSize(myInputDir)}
4、定時執行
Azkaban的定時執行任務是基於時間的,Oozie的定時執行任務基於時間和輸入數據
5、資源管理
Azkaban有較嚴格的權限控制,如用戶對工作流進行讀/寫/執行等操作,Oozie暫無嚴格的權限控制
6、工作流執行
Azkaban有兩種運行模式,分別是solo server mode(executor server和web server部署在同一台節點)和multi server mode(executor server和web server可以部署在不同節點)
Oozie作為工作流服務器運行,支持多用戶和多工作流
7、工作流管理
Azkaban支持瀏覽器以及ajax方式操作工作流
Oozie支持命令行、HTTP REST、Java API、瀏覽器操作工作流
Azkaban
Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。
它有如下功能特點:
1、Web用戶界面
2、方便上傳工作流
3、方便設置任務之間的關系
4、調度工作流
5、認證/授權(權限的工作)
6、能夠殺死並重新啟動工作流
7、模塊化和可插拔的插件機制
8、項目工作區
9、工作流和任務的日志記錄和審計