1. 程式人生 > >大資料基礎之Oozie vs Azkaban

大資料基礎之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年多過後還沒有修復

https://github.com/azkaban/azkaban/issues/952

重啟影響

重啟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

不支援