Azkaban概述詳解

Azkaban概述詳解

本文簡單介紹一下Azkaban及其特點。azkaban是一個開源的任務調度系統,用於負責任務的調度運行(如數據倉庫調度),用以替代linux中的crontab。

一、Azkaban是什麼?

1.1 Azkaban是什麼?

  • Azkaban是一套簡單的任務調度服務,整體包括三部分webserver、dbserver、executorserver。
  • Azkaban是linkin的開源項目,開發語言爲Java。
  • Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程。
  • Azkaban定義了一種KV文件格式來建立任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。

1.2 Azkaban典型使用場景

實際當中經常有這些場景:每天有一個大任務,這個大任務可以分成A,B,C,D四個小任務,A,B任務之間沒有依賴關係,C任務依賴A,B任務的結果,D任務依賴C任務的結果。一般的做法是,開兩個終端同時執行A,B,兩個都執行完了再執行C,最後再執行D。這樣的話,整個的執行過程都需要人工參加,並且得盯着各任務的進度。但是我們的很多任務都是在深更半夜執行的,通過寫腳本設置crontab執行。其實,整個過程類似於一個有向無環圖(DAG)。每個子任務相當於大任務中的一個流,任務的起點可以從沒有度的節點開始執行,任何沒有通路的節點之間可以同時執行,比如上述的A,B。總結起來的話,我們需要的就是一個工作流的調度器,而azkaban就是能解決上述問題的一個調度器。

1.3 Azkaban官網

https://azkaban.github.io/

在這裏插入圖片描述

二、Azkaban的功能特點

它具有如下功能特點:

  • 1、Web用戶界面
  • 2、方便上傳工作流
  • 3、方便設置任務之間的關係
  • 4、工作流調度
  • 5、認證/授權
  • 6、能夠殺死並重啓工作流
  • 7、模塊化和可插拔的插件機制
  • 8、項目工作區
  • 9、工作流和任務的日誌記錄和審計

三、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執行服務器執行提交工作流

參考 https://www.cnblogs.com/shujuxiong/p/9116394.html

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