一個(gè)完整的數(shù)據(jù)分析系統(tǒng)大都是由海量的任務(wù)單元組成shell腳本程序,java,mapreduce程序、hive腳本等等組成,非常復(fù)雜,各任務(wù)單元之間存在時(shí)間先后及前后依賴關(guān)系。
為了很好地組織起這樣的復(fù)雜系統(tǒng),能夠按照計(jì)劃執(zhí)行,就必須要一個(gè)工作流調(diào)度系統(tǒng)來調(diào)度執(zhí)行。
例如,某個(gè)業(yè)務(wù)系統(tǒng)可能每天產(chǎn)生20G原始數(shù)據(jù),我們每天都要對(duì)其進(jìn)行處理。
具體處理步驟如下所示:
1. 通過Hadoop先將原始數(shù)據(jù)同步到HDFS上;
2. 借助MapReduce計(jì)算框架對(duì)原始數(shù)據(jù)進(jìn)行計(jì)算,生成的數(shù)據(jù)以分區(qū)表的形式存儲(chǔ)到多張Hive表中;
3. 需要對(duì)Hive中多個(gè)表的數(shù)據(jù)進(jìn)行JOIN處理,得到一個(gè)明細(xì)數(shù)據(jù)Hive大表;
4. 將明細(xì)數(shù)據(jù)進(jìn)行復(fù)雜的統(tǒng)計(jì)分析,得到結(jié)果報(bào)表信息;
5. 需要將統(tǒng)計(jì)分析得到的結(jié)果數(shù)據(jù)同步到業(yè)務(wù)系統(tǒng)中,供業(yè)務(wù)調(diào)用使用。
簡單的任務(wù)調(diào)度:直接使用linux的crontab來定義;
復(fù)雜的任務(wù)調(diào)度:開發(fā)調(diào)度平臺(tái)或使用現(xiàn)成的開源調(diào)度系統(tǒng),比如ooize、azkaban、 Cascading、Hamake等
下面的表格對(duì)上述四種hadoop工作流調(diào)度器的關(guān)鍵特性進(jìn)行了比較,盡管這些工作流調(diào)度器能夠解決的需求場景基本一致,但在設(shè)計(jì)理念,目標(biāo)用戶,應(yīng)用場景等方面還是存在顯著的區(qū)別,在做技術(shù)選型的時(shí)候,可以提供參考。
對(duì)市面上最流行的兩種調(diào)度器,給出以下詳細(xì)對(duì)比,以供技術(shù)選型參考。總體來說,ooize相比azkaban是一個(gè)重量級(jí)的任務(wù)調(diào)度系統(tǒng),功能全面,但配置使用也更復(fù)雜。如果可以不在意某些功能的缺失,輕量級(jí)調(diào)度器azkaban是很不錯(cuò)的候選對(duì)象。 詳情如下
1 :功能
兩者均可以調(diào)度mapreduce,pig,java,腳本工作流任務(wù)、兩者均可以定時(shí)執(zhí)行工作流任務(wù)
2 :工作流定義
Azkaban使用Properties文件定義工作流、Oozie使用XML文件定義工作流
3 :工作流傳參
Azkaban支持直接傳參,例如${input}、Oozie支持參數(shù)和EL表達(dá)式,例如${fs:dirSize(myInputDir)}
4 :定時(shí)執(zhí)行
Azkaban的定時(shí)執(zhí)行任務(wù)是基于時(shí)間的、Oozie的定時(shí)執(zhí)行任務(wù)基于時(shí)間和輸入數(shù)據(jù)
5 :資源管理
Azkaban有較嚴(yán)格的權(quán)限控制,如用戶對(duì)工作流進(jìn)行讀/寫/執(zhí)行等操作。Oozie暫無嚴(yán)格的權(quán)限控制
6 :工作流執(zhí)行
Azkaban有兩種運(yùn)行模式,分別是solo server mode(executor server和web server部署在同一臺(tái)節(jié)點(diǎn))和multi server mode(executor server和web server可以部署在不同節(jié)點(diǎn))、Oozie作為工作流服務(wù)器運(yùn)行,支持多用戶和多工作流
7:工作流管理?
Azkaban支持瀏覽器以及ajax方式操作工作流、Oozie支持命令行、HTTP REST、Java API、瀏覽器操作工作流
Azkaban是由Linkedin開源的一個(gè)批量工作流任務(wù)調(diào)度器。用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務(wù)之間的依賴關(guān)系,并提供一個(gè)易于使用的web用戶界面維護(hù)和跟蹤你的工作流。它有如下功能特點(diǎn):
1:Web用戶界面
2:方便上傳工作流
3:方便設(shè)置任務(wù)之間的關(guān)系
4:調(diào)度工作流
5:認(rèn)證/授權(quán)(權(quán)限的工作)
6:能夠殺死并重新啟動(dòng)工作流
7:模塊化和可插拔的插件機(jī)制
8:項(xiàng)目工作區(qū)
工作流和任務(wù)的日志記錄和審計(jì)
下載地址
http://azkaban.github.io/downloads.html
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/127490.html
摘要:安裝包老是失敗,今天發(fā)現(xiàn)一個(gè)更好的包安裝工具,可以用這個(gè)來管理我們的包。是最近發(fā)布的一款依賴包安裝工具。在官方介紹里有這么一句話關(guān)鍵意思就是,快速安全可靠。如同聲稱,快速,可靠,安全。原文地址的安裝與使用詳細(xì)介紹 npm安裝包老是失敗,今天發(fā)現(xiàn)一個(gè)更好的包安裝工具Yarn,可以用這個(gè)來管理我們的包。不知道大家有沒有覺察到Facebook近年大招頻出。Yarn是Facebook最近發(fā)布的...
摘要:打包工具是眾多的開發(fā)工具之一,下面千鋒重慶的小編來進(jìn)行打包工具的介紹打包工具的介紹開源是一個(gè)安裝程序制作工具,能夠制作一些簡單的安裝程序。是全球領(lǐng)先的安裝開發(fā)解決方案。通過上述介紹相信大家對(duì)打包工具已經(jīng)有所了解 Java打包工具是眾多的Java開發(fā)工具之一,下面千鋒重慶Java的小編來進(jìn)行Java打包工具的介紹:Java打...
摘要:相關(guān)鏈接官方文檔安裝推薦使用安裝,命令如下運(yùn)行完畢之后即可完成的安裝。上一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)數(shù)據(jù)庫的安裝下一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)庫的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---4、數(shù)據(jù)庫的安裝:MySQL、MongoDB、Redis下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---6、Web庫的安裝:Flask、Tornado 在前面一節(jié)我們介紹了幾個(gè)數(shù)據(jù)庫的安裝方式,但這僅僅是用來存...
摘要:介紹說明的包管理器,用于插件管理包括安裝卸載管理依賴等使用安裝插件命令提示符執(zhí)行插件名稱。總結(jié)安裝新建文件全局和本地安裝安裝插件新建文件通過命令提示符運(yùn)行任務(wù)。 showImg(https://segmentfault.com/img/remote/1460000010873466); 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本...
閱讀 1209·2023-02-24 11:21
閱讀 1405·2023-02-24 10:55
閱讀 2407·2023-02-24 10:47
閱讀 3099·2023-02-24 10:44
閱讀 885·2023-02-24 10:38
閱讀 610·2022-12-25 19:44
閱讀 752·2022-12-25 19:39
閱讀 866·2022-12-25 19:36