一、Azkaban概述


azkaban由LinkedIn實現,解決了Hadoop的 Job 依賴的問題。在ETL及數據分析工作中,我們經常需要按順序執行一些任務。
最初只是個單服務的解決方案,隨着這些年來Hadoop用戶的增加,阿茲卡班已經演變成爲一個更可靠的解決方案。
azkaban由3個主要組成部分:
  • 關係型數據庫(MySQL)
  • Azkaban Web Server
  • Azkaban Executor Server

關係型數據庫(MySQL)
阿茲卡班使用MySQL來存儲它的狀態。無論是Azkaban Web Server 還是 Azkaban Executor Server都是通過數據庫存儲。
Azkaban Web Server使用DB做什麼?
Web Server 使用數據庫的原因如下:
  • 項目管理 - 項目,項目的權限,以及上傳的文件。
  • 執行流動狀態 - 存儲 Executor 對 Flow 狀態的跟蹤。
  • Flow/Job 歷史記錄- 搜索 Job 和 Flow 執行的歷史記錄以及他們的日誌文件。
  • Scheduler - 存儲調度作業的狀態。
  • SLA - 存儲所有SLA規則
Azkaban Executor Server使用DB做什麼?
Executor Server使用數據庫的原因如下:
  • 進入項目 - 從數據庫中檢索項目文件。
  • 執行 Flow/Job - 獲取並更新 Flow 執行時產生的數據
  • 日誌 -存儲 Job 及 Flow 的日誌。
  • 互通的依賴 -如果流在不同的 Executor 運行時,它需要從數據庫獲取狀態

AzkabanWebServer
該AzkabanWebServer是阿茲卡班的主要的管理者它處理項目管理,認證,調度和監控。它也可作爲Web用戶界面。
使用阿茲卡班是很容易。阿茲卡班使用*.jobkey-value屬性文件定義每個任務,並且_dependencies_屬性來定義 Job 的依賴關係。這些 job 文件及相關的代碼可以被壓縮成一個*.zip 文件,可以通過阿茲卡班的用戶界面或者 curl 上傳。

AzkabanExecutorServer
在之前的版本,阿茲卡班只有一個服務,它擁有AzkabanWebServer 和 AzkabanExecutorServer的功能。現在 Executor 已經被分離成單獨的服務。分離這些服務有這幾個原因:當其中有 Executor 出現故障時,我們可以迅速擴展 Executor 數量。此外,在升級阿茲卡班時,​​對用戶的影響也下降到最小。由於阿茲卡班的使用量的增長,我們發現,升級阿茲卡班越來越難。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章