Azkaban是什么?(一)
不多說,直接上干貨!
http://www.cnblogs.com/zlslch/category/938837.html
Azkaban的架構
Azkaban是一種類似於Oozie的工作流控制引擎,可以用來解決多個Hadoop(或Spark等)離線計算任務之間的依賴關系問題。
也可以用其代替crontab來對周期性任務進行調度,並且更為直觀,可靠,同時提供了美觀的可視化管理界面。
Azkaban由三部分構成:
1、Relational Database(Mysql)
azkaban將大多數狀態信息都存於MySQL中,Azkaban Web Server 和 Azkaban Executor Server也需要訪問DB。
2、Azkaban Web Server
提供了Web UI,是azkaban的主要管理者,包括 project 的管理,認證,調度,對工作流執行過程的監控等。
3、Azkaban Executor Server
調度工作流和任務,紀錄工作流活任務的日志,之所以將AzkabanWebServer和AzkabanExecutorServer分開,主要是因為在某個任務流失敗后,可以更方便的將重新執行。而且也更有利於Azkaban系統的升級
MySQL實例:Azkaban使用MySQL來存儲項目和執行。
Azkaban Web服務器:Azkaban使用Jetty作為Web服務器,用作控制器以及提供Web界面
Azkaban執行服務器:Azkaban執行服務器執行提交工作流。
Azkaban架構的三種運行模式
1、solo server mode
H2
web server 和 executor server運行在一個進程里
最簡單的模式,數據庫內置的H2數據庫,管理服務器和執行服務器都在一個進程中運行,任務量不大項目可以采用此模式。
2、two server mode
MySQL(主從結構)
web server 和 executor server運行在不同的進程
數據庫為mysql,管理服務器和執行服務器在不同進程,這種模式下,管理服務器和執行服務器互不影響
3、multiple executor mode
MySQL(主從結構)
web server 和 executor server運行在不同的進程
executor server有多個
該模式下,執行服務器和管理服務器在不同主機上,且執行服務器可以有多個。
注意:我這次采用第二種模式,管理服務器、執行服務器分進程,但在同一台主機上。