大資料基礎之Oozie vs Azkaban
概括:
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 |
不支援
|