Azkaban - [01] 概述

HOUHUILIN發表於2024-04-17

簡單的任務排程使用crontab、複雜的任務排程使用oozie、azkaban等開發排程系統。

一、為什麼學習Azkaban

  一個完整的資料分析系統通常都是由大量任務單元(shell指令碼、java程式、MapReduce程式、Hive指令碼等)組成。各任務單元之間存在先後及前後依賴關係,為了組織起這樣的複雜執行計劃,需要一個工作流排程系統來排程執行。

二、什麼是Azkaban

  Azkaban是由LinkedIn公司推出的一個批次工作流任務排程器,主要用於在一個工作流內以一個特定的順序執行一組工作和流程,它的配置是透過簡單的 key:value鍵值對)的方式,透過配置中的dependencies來設定依賴關係。Azkaban使用job配置檔案建立任務之間的依賴關係,並提供一個易於使用的web使用者介面維護和跟蹤你的工作流。

三、Azkaban的特點

  • 相容各種版本的Hadoop
  • 易於使用的web使用者介面
  • 簡單的工作流上傳
  • 方便設定任務之間的關係
  • 排程工作流
  • 模組化和可插拔的外掛機制
  • 認證/授權(許可權的工作)
  • 能夠殺死並重新啟動任務流
  • 有關失敗和成功的電子郵件提醒

四、Azkaban的架構

Azkaban - [01] 概述

Azkaban Web Server
是整個 Azkaban 工作流系統的主要管理者
負責使用者登入認證、負責 project 管理、定時執行工作流、跟蹤工作流執行進度等一系列任務。
AzkabanExecutorServer
負責具體的工作流的提交、執行,透過 mysql資料庫來協調任務的執行。
關係型資料庫(MySQL)
儲存大部分執行流狀態,AzkabanWebServer 和 AzkabanExecutorServer 都需要訪問資料庫。

五、Oozie和Azkaban特性對比

特性 Oozie Azkaban
工作流描述語言 XML 鍵值對
是否要web容器
進度跟蹤 網頁 網頁
Hadoop job排程支援
執行模式 daemon daemon
事件通知 ×
需要安裝
支援的Hadoop版本 0.20+
重試支援 workflownode evel
執行任意命令

— 要養成終身學習的習慣 —

相關文章