黑猴子的家:Azkaban 概述

1、為什么需要工作流調(diào)度系統(tǒng)

1)一個(gè)完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務(wù)單元組成:
shell腳本程序,java程序,mapreduce程序、hive腳本等
2)各任務(wù)單元之間存在時(shí)間先后及前后依賴關(guān)系
3)為了很好地組織起這樣的復(fù)雜執(zhí)行計(jì)劃,需要一個(gè)工作流調(diào)度系統(tǒng)來調(diào)度執(zhí)行;
例如,我們可能有這樣一個(gè)需求,某個(gè)業(yè)務(wù)系統(tǒng)每天產(chǎn)生20G原始數(shù)據(jù),我們每天都要對(duì)其進(jìn)行處理,處理步驟如下所示:
(1)通過Hadoop先將原始數(shù)據(jù)上傳到HDFS上(HDFS的操作);
(2)使用MapReduce對(duì)原始數(shù)據(jù)進(jìn)行清洗(MapReduce的操作);
(3)將清洗后的數(shù)據(jù)導(dǎo)入到hive表中(hive的導(dǎo)入操作);
(4)對(duì)Hive中多個(gè)表的數(shù)據(jù)進(jìn)行JOIN處理,得到一張hive的明細(xì)表(創(chuàng)建中間表);
(5)通過對(duì)明細(xì)表的統(tǒng)計(jì)和分析,得到結(jié)果報(bào)表信息(hive的查詢操作);


2、Azkaban的適用場(chǎng)景

根據(jù)以上業(yè)務(wù)場(chǎng)景:(2)任務(wù)依賴(1)任務(wù)的結(jié)果,(3)任務(wù)依賴(2)任務(wù)的結(jié)果,(4)任務(wù)依賴(3)任務(wù)的結(jié)果,(5)任務(wù)依賴(4)任務(wù)的結(jié)果。一般的做法是,先執(zhí)行完(1)再執(zhí)行(2),再一次執(zhí)行(3)(4)(5)。
這樣的話,整個(gè)的執(zhí)行過程都需要人工參加,并且得盯著各任務(wù)的進(jìn)度。但是我們的很多任務(wù)都是在深更半夜執(zhí)行的,通過寫腳本設(shè)置crontab執(zhí)行。其實(shí),整個(gè)過程類似于一個(gè)有向無環(huán)圖(DAG)。每個(gè)子任務(wù)相當(dāng)于大任務(wù)中的一個(gè)節(jié)點(diǎn),也就是,我們需要的就是一個(gè)工作流的調(diào)度器,而Azkaban就是能解決上述問題的一個(gè)調(diào)度器。

3、什么是azkaban

Azkaban是由Linkedin公司推出的一個(gè)批量工作流任務(wù)調(diào)度器,主要用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程,它的配置是通過簡單的key:value對(duì)的方式,通過配置中的dependencies 來設(shè)置依賴關(guān)系。Azkaban使用job配置文件建立任務(wù)之間的依賴關(guān)系,并提供一個(gè)易于使用的web用戶界面維護(hù)和跟蹤你的工作流。

4、Azkaban特點(diǎn)

1)兼容任何版本的hadoop
2)易于使用的Web用戶界面
3)簡單的工作流的上傳
4)方便設(shè)置任務(wù)之間的關(guān)系
5)調(diào)度工作流
6)模塊化和可插拔的插件機(jī)制
7)認(rèn)證/授權(quán)(權(quán)限的工作)
8)能夠殺死并重新啟動(dòng)工作流
9)有關(guān)失敗和成功的電子郵件提醒

5、常見工作流調(diào)度系統(tǒng)

1)簡單的任務(wù)調(diào)度:直接使用crontab實(shí)現(xiàn);
2)復(fù)雜的任務(wù)調(diào)度:開發(fā)調(diào)度平臺(tái)或使用現(xiàn)成的開源調(diào)度系統(tǒng),比如ooize、azkaban等

6、ooize和azkaban特性對(duì)比

下面的表格對(duì)上述四種hadoop工作流調(diào)度器的關(guān)鍵特性進(jìn)行了比較,盡管這些工作流調(diào)度器能夠解決的需求場(chǎng)景基本一致,但在設(shè)計(jì)理念,目標(biāo)用戶,應(yīng)用場(chǎng)景等方面還是存在顯著的區(qū)別,在做技術(shù)選型的時(shí)候,可以提供參考

特性 Oozie Azkaban
工作流描述語言 XML text file with key/value pairs
是否要web容器 Yes Yes
進(jìn)度跟蹤 web page web page
Hadoop job調(diào)度支持 yes yes
運(yùn)行模式 daemon daemon
事件通知 no Yes
需要安裝 yes yes
支持的hadoop版本 0.20+ currently unknown
重試支持 workflownode evel yes
運(yùn)行任意命令 yes yes

7、Azkaban的架構(gòu)

Azkaban由三個(gè)關(guān)鍵組件構(gòu)成



1)AzkabanWebServer:AzkabanWebServer是整個(gè)Azkaban工作流系統(tǒng)的主要管理者,它用戶登錄認(rèn)證、負(fù)責(zé)project管理、定時(shí)執(zhí)行工作流、跟蹤工作流執(zhí)行進(jìn)度等一系列任務(wù)。

2)AzkabanExecutorServer:負(fù)責(zé)具體的工作流的提交、執(zhí)行,它們通過mysql數(shù)據(jù)庫來協(xié)調(diào)任務(wù)的執(zhí)行。

3)關(guān)系型數(shù)據(jù)庫(MySQL):存儲(chǔ)大部分執(zhí)行流狀態(tài),AzkabanWebServer和AzkabanExecutorServer都需要訪問數(shù)據(jù)庫。

8、Azkaban下載地址

http://azkaban.github.io/downloads.html
https://azkaban.github.io/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一 概述 1.1 為什么需要工作流調(diào)度系統(tǒng) 1.一個(gè)完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務(wù)單元組成:shell腳本程...
    Movle閱讀 588評(píng)論 0 4
  • 1.Azkaban介紹 為什么需要工作流調(diào)度系統(tǒng)1)一個(gè)完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務(wù)單元組成: shell...
    勇于自信閱讀 531評(píng)論 0 0
  • 本文作者:林偉兵,叩丁狼高級(jí)講師。原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。 1. Azkaban概述 Azkaban技術(shù)產(chǎn)生前景...
    叩丁狼教育閱讀 2,127評(píng)論 0 6
  • 為什么需要工作流調(diào)度系統(tǒng) 一個(gè)完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務(wù)單元組成:shell腳本程序,java程序,ma...
    大數(shù)據(jù)小同學(xué)閱讀 851評(píng)論 0 0
  • 概述 工作流調(diào)度系統(tǒng) ?個(gè)完整的數(shù)據(jù)分析系統(tǒng)通常都是由?量任務(wù)單元組成 shell腳本程序 java程序 mapr...
    奮斗的蛐蛐閱讀 591評(píng)論 0 2

友情鏈接更多精彩內(nèi)容