概括
Azkaban是一個非常輕量的開源調度框架,適合二次開發,但是無法直接用於生產環境,存在致命缺陷(比如AzkabanWebServer是單點,1年多時間沒有修復),在一些情景下的行為簡單粗暴(比如重啟AzkabanExecutorServer會導致該server上正在運行的所有流程fail),很多時候需要人工干預,要達到生產環境的可靠性級別,至少大量二次開發,並且官方代碼更新很快,合並代碼有很大沖突風險,適合於一些對可靠性要求不高可以快速上手的小公司,不建議使用;
Oozie作為apache頂級項目,使用廣泛,功能豐富,代碼質量高,成熟可靠,代碼和部署相對復雜一點,建議使用;
|
Oozie |
Azkaban |
版本 |
4.3 |
3.45 |
開發語言 |
Java |
Java |
任務配置 |
Xml文件(存放在hdfs) Properties文件 |
Properties文件(打成Zip,上傳后存放在DB) |
添加任務 |
hdfs上傳Xml文件后client通過Properties文件提交 |
web上傳Zip AJAX上傳Zip |
任務運行 |
Yarn |
AzkabanExecutorServer執行 |
分配粒度 |
任務 |
工作流 |
失敗重試 |
支持 |
支持 |
擴展性 |
好,支持服務擴展、任務擴展 |
好,支持插件化、任務擴展 |
接口 |
命令行 Java API |
網頁 AJAX API |
支持任務類型 |
HDFS、MapReduce、Java、Shell、SSH、Pig、Hive、E-Mail、Sub-Workflow、Sqoop、Distcp |
Shell、Java 其他需要插件支持 |
部署 |
相對復雜 |
簡單 |
GUI |
開源Hue提供GUI方式編輯流程定義 |
不提供GUI編輯流程定義 |
可靠性 |
可靠 通過Zookeeper實現HA |
不可靠 AzkabanWebServer是單點,17年3月社區就提到該問題,但1年多過后還沒有修復 |
重啟影響 |
無 |
重啟AzkabanExecutorServer會導致該server上正在運行的所有流程fail,還可能需要刷新executors狀態 |
代碼質量 |
非常好 |
一般,並且代碼中很多TODO |
代碼更新 |
慢 |
很快,小版本很多 |
任務重復運行風險 |
無 |
有 |
SLA |
支持 |
支持 |
監控 |
web-services API instrumentation log |
不支持 |
流程狀態回調 |
JMS 或 oozie.coord.action.notification.url oozie.wf.workflow.notification.url oozie.wf.action.notification.url |
不支持
|