詳解大數(shù)據(jù)批流處理中的兩大架構(gòu)
1.Lambda架構(gòu)
對(duì)于在云端的數(shù)據(jù)中心實(shí)現(xiàn)針對(duì)海量歷史數(shù)據(jù)的批量計(jì)算(及優(yōu)化),同時(shí)需要分別在云端、邊緣端實(shí)現(xiàn)針對(duì)流數(shù)據(jù)的實(shí)時(shí)處理的場(chǎng)景。換言之,為了達(dá)到全量數(shù)據(jù)批處理的準(zhǔn)確性與實(shí)時(shí)數(shù)據(jù)流處理的低延遲的兼具,Nathan Marz基于他在Backtype和Twitter公司中對(duì)大數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)、開發(fā)經(jīng)驗(yàn),于2013年提出了批流處理系統(tǒng)架構(gòu)——Lambda。
Lambda架構(gòu)是當(dāng)前大數(shù)據(jù)中批流處理方向影響最為深刻、應(yīng)用最為廣泛的架構(gòu),主要分為以下3個(gè)組成部分:
(1)批處理層(batch layer)
該層負(fù)責(zé)兩方面的內(nèi)容:1)管理“主數(shù)據(jù)庫(kù)”,即保存有完整的歷史數(shù)據(jù)、持久化存儲(chǔ)的、不可變的、僅支持追加的數(shù)據(jù)倉(cāng)庫(kù);2)計(jì)算批處理視圖,即通過(guò)批處理的方式對(duì)全量數(shù)據(jù)進(jìn)行分析所得出的視圖。
可見,批處理部分類似于其他專用批處理系統(tǒng),對(duì)大規(guī)模的數(shù)據(jù)在保證準(zhǔn)確性和完整性的前提下,利用批處理優(yōu)化技術(shù)進(jìn)行全局分析。
(2)服務(wù)層(serving layer)
該層與批處理層一同工作,功能上作為應(yīng)用程序進(jìn)行查詢的服務(wù)器,負(fù)責(zé)對(duì)批處理層中產(chǎn)生的批處理視圖建立索引,以便應(yīng)用程序能夠根據(jù)用戶的指定進(jìn)行低延遲的、點(diǎn)對(duì)點(diǎn)(ad-hoc)的查詢。需要注意的是,這里的“低延遲”指的是用于進(jìn)行查詢(query)時(shí)系統(tǒng)響應(yīng)結(jié)果的延遲,這個(gè)時(shí)間會(huì)因?yàn)樗饕慕⒍蟠蠼档?,但并不?huì)改變批處理層中對(duì)全量數(shù)據(jù)進(jìn)行計(jì)算更新的時(shí)間開銷。
(3)流處理層(speed layer)
上述由批處理層與服務(wù)層組成的批處理部分能夠?qū)﹄x線的歷史數(shù)據(jù)進(jìn)行完整的分析,但如同傳統(tǒng)的批處理專用系統(tǒng),這個(gè)處理過(guò)程將會(huì)遍歷所有已存在的數(shù)據(jù),將不可避免地造成較大的計(jì)算開銷,并占用較長(zhǎng)的處理時(shí)間。那么為了實(shí)現(xiàn)對(duì)實(shí)時(shí)數(shù)據(jù)的流式處理,便需要“流處理層”與它相結(jié)合。流處理層即基于流式處理建立的數(shù)據(jù)處理模塊,彌補(bǔ)了批處理部分的高延遲更新缺陷,僅用于接收最近產(chǎn)生的流數(shù)據(jù),并根據(jù)它進(jìn)行計(jì)算得出即時(shí)結(jié)果。這里的“計(jì)算”更準(zhǔn)確而言應(yīng)是“近似計(jì)算”,因?yàn)榱魈幚聿糠植⒉荒軌颢@知全局的數(shù)據(jù),而僅僅能夠獲取剛剛發(fā)生的事件及最近的狀態(tài)信息,但同時(shí)也由于這個(gè)原因,流處理層具備批處理模塊無(wú)法達(dá)到的視圖更新速度,能夠以高出數(shù)個(gè)數(shù)量級(jí)的響應(yīng)效率,支撐用戶對(duì)于最新數(shù)據(jù)的分析要求。
在上述批處理層、服務(wù)層和流處理層的基礎(chǔ)上,Lambda架構(gòu)的核心思想便是將數(shù)據(jù)輸入到了批處理、流處理兩個(gè)數(shù)據(jù)鏈路中,分別并行地進(jìn)行計(jì)算,并在用戶進(jìn)行查詢的階段,將兩個(gè)數(shù)據(jù)鏈路產(chǎn)生的結(jié)果(視圖)進(jìn)行融合,返回給用戶。這樣,一方面,批處理模塊基于全量數(shù)據(jù)計(jì)算得出的結(jié)果保證了最終響應(yīng)結(jié)果的完整性與準(zhǔn)確性;另一方面,流處理模塊基于實(shí)時(shí)數(shù)據(jù)進(jìn)行流處理獲得的即時(shí)更新保證了用戶查詢的極低延遲。
缺陷:設(shè)計(jì)和實(shí)現(xiàn)該架構(gòu)的過(guò)程中,存在一些無(wú)法避免的問(wèn)題,其中最為主要的便是開發(fā)和維護(hù)的復(fù)雜性。對(duì)于開發(fā)人員而言,實(shí)現(xiàn)一個(gè)較為完善的分布式處理系統(tǒng)需要付出很大的精力,這不僅表現(xiàn)在設(shè)計(jì)、編碼的過(guò)程中,更表現(xiàn)在效率優(yōu)化、后期維護(hù)升級(jí)等方面,每一個(gè)細(xì)節(jié)的調(diào)整都可能會(huì)導(dǎo)致設(shè)計(jì)思路的轉(zhuǎn)變,從而造成較大的更新代價(jià)。
那么,是否能夠在盡量避免同時(shí)開發(fā)批、流兩個(gè)系統(tǒng)的復(fù)雜性的同時(shí),實(shí)現(xiàn)基于云邊協(xié)同平臺(tái)的批流融合處理呢?換言之,能否改進(jìn)批處理或流處理其中一個(gè),以使它不足的方面達(dá)到或接近另一模塊的水平?
2.Kappa架構(gòu)
Kappa架構(gòu)由來(lái)自于LinkedIn公司的Jay Kreps在2014年提出,這一架構(gòu)不僅大大降低了開發(fā)人員的負(fù)擔(dān),而且更為重要的是,使得在更高程度邊緣化的云邊協(xié)同平臺(tái)上,利用邊緣端的計(jì)算,使得批流一體化處理成為可能。
該架構(gòu)提出輸入數(shù)據(jù)只通過(guò)流計(jì)算一條鏈路進(jìn)行處理,并生成待查詢的視圖。它的核心是數(shù)據(jù)以日志(log)的形式,以追加(append-only)且不可變的方式,存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中。換句話說(shuō),它要求長(zhǎng)期存儲(chǔ)的歷史數(shù)據(jù)能夠以有序日志流重新流入計(jì)算引擎,以備需要重新計(jì)算全局視圖時(shí),從數(shù)據(jù)倉(cāng)庫(kù)中取出這些數(shù)據(jù)進(jìn)行全量計(jì)算,直到該數(shù)據(jù)副本的進(jìn)度趕上當(dāng)前事件發(fā)生的進(jìn)度,丟棄原有視圖,將新的副本視圖作為主要結(jié)果。
利用這一架構(gòu),不僅能夠在邊緣端實(shí)現(xiàn)低延遲的流處理,同時(shí)也能夠?qū)崿F(xiàn)歷史數(shù)據(jù)的批量處理。這為主要依賴于邊緣計(jì)算能力的諸多應(yīng)用場(chǎng)景提供了有力的技術(shù)支撐。
3.其他技術(shù)
在對(duì)基于云邊協(xié)同環(huán)境下數(shù)據(jù)處理方案以及數(shù)據(jù)系統(tǒng)架構(gòu)的研究外,相關(guān)的其他研究也在不斷嘗試、探索。其中,一個(gè)方向便是將傳統(tǒng)系統(tǒng)(例如MapReduce)中基于硬盤的存儲(chǔ)改進(jìn)為基于內(nèi)存的存儲(chǔ)。一方面,借助內(nèi)存在硬件上天生具有的低延遲、高吞吐等特性,不論是實(shí)時(shí)的自動(dòng)駕駛行車數(shù)據(jù),還是短時(shí)高密度的健康行為統(tǒng)計(jì)數(shù)據(jù),都能夠避免大量的I/O(輸入/輸出)開銷,支撐批流數(shù)據(jù)處理的速度要求;另一方面,通過(guò)檢查點(diǎn)(checkpoint)備份算法、自動(dòng)恢復(fù)(recovery)機(jī)制等補(bǔ)充,實(shí)現(xiàn)硬盤持久化存儲(chǔ)的穩(wěn)定性,保證了數(shù)據(jù)的可追溯、可恢復(fù)。目前,相關(guān)的研究人員已經(jīng)在該研究方向上進(jìn)行了長(zhǎng)久的探索,并取得了較好的成效,實(shí)現(xiàn)了包括Spark在內(nèi)的多個(gè)系統(tǒng)。
關(guān)于作者:
韓銳,北京理工大學(xué)特別研究員,博士生導(dǎo)師。專注于研究面向典型負(fù)載(機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、互聯(lián)網(wǎng)服務(wù))的云計(jì)算系統(tǒng)優(yōu)化,在 TPDS、TC、TKDE、TSC等領(lǐng)域頂級(jí)(重要)期刊和INFOCOM、ICDCS、ICPP、RTSS等會(huì)議上發(fā)表超過(guò)40篇論文,Google學(xué)術(shù)引用1000 余次。
劉馳,北京理工大學(xué)計(jì)算機(jī)學(xué)院副院長(zhǎng),教授,博士生導(dǎo)師。智能信息技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室主任,國(guó)家優(yōu)秀青年科學(xué)基金獲得者,國(guó)家重點(diǎn)研發(fā)計(jì)劃首席科學(xué)家,中國(guó)電子學(xué)會(huì)會(huì)士,英國(guó)工程技術(shù)學(xué)會(huì)會(huì)士,英國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)士。
本文摘編自《云邊協(xié)同大數(shù)據(jù):技術(shù)與應(yīng)用》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111701002)轉(zhuǎn)載請(qǐng)保留文章出處。