##[Kappa]:比Lambda更好更靈活的實(shí)時處理架構(gòu)


//
Lambda架構(gòu) vs Kappa架構(gòu) - CSDN博客
http://blog.csdn.net/post_yuan/article/details/52241252
Lambda 架構(gòu)由Storm的作者Nathan Marz提出,其設(shè)計目的在于提供一個能滿足大數(shù)據(jù)系統(tǒng)關(guān)鍵特性的架構(gòu),包括高容錯、低延遲、可擴(kuò)展等。其整合離線計算與實(shí)時計算,融合不可變性、讀寫分離和復(fù)雜性隔離等原則,可集成Hadoop, Kafka, Spark,Storm等各類大數(shù)據(jù)組件。

image.png

//
Kappa 架構(gòu)
Kappa 架構(gòu)是LinkedIn的Jay Kreps結(jié)合實(shí)際經(jīng)驗(yàn)和個人體會,針對Lambda架構(gòu)進(jìn)行深度剖析,分析其優(yōu)缺點(diǎn)并采用的替代方案。Lambda 架構(gòu)的一個很明顯的問題是需要維護(hù)兩套分別跑在批處理和實(shí)時計算系統(tǒng)上面的代碼,而且這兩套代碼得產(chǎn)出一模一樣的結(jié)果。因此對于設(shè)計這類系統(tǒng)的人來講,要面對的問題是:為什么我們不能改進(jìn)流計算系統(tǒng)讓它能處理這些問題?為什么不能讓流系統(tǒng)來解決數(shù)據(jù)全量處理的問題?流計算天然的分布式特性注定其擴(kuò)展性比較好,能否加大并發(fā)量來處理海量的歷史數(shù)據(jù)?基于種種問題的考慮,Jay提出了Kappa這種替代方案。

image.png

那如何用流計算系統(tǒng)對全量數(shù)據(jù)進(jìn)行重新計算,步驟如下:
1、用Kafka或類似的分布式隊列保存數(shù)據(jù),需要幾天數(shù)據(jù)量就保存幾天。
2、當(dāng)需要全量計算時,重新起一個流計算實(shí)例,從頭開始讀取數(shù)據(jù)進(jìn)行處理,并輸出到一個結(jié)果存儲中。
3、當(dāng)新的實(shí)例完成后,停止老的流計算實(shí)例,并把老的一引起結(jié)果刪除。
一個典型的Kappa架構(gòu)如下,

image.png

//
Kappa:比Lambda更好更靈活的實(shí)時處理架構(gòu) - bonelee - 博客園
http://www.cnblogs.com/bonelee/p/6603541.html
和Lambda架構(gòu)相比,在Kappa架構(gòu)下,只有在有必要的時候才會對歷史數(shù)據(jù)進(jìn)行重復(fù)計算,并且實(shí)時計算和批處理過程使用的是同一份代碼?;蛟S有些人會質(zhì)疑流式處理對于歷史數(shù)據(jù)的高吞吐量會力不從心,但是這可以通過控制新實(shí)例的并發(fā)數(shù)進(jìn)行改善。

Kappa架構(gòu)的核心思想包括以下三點(diǎn):
用Kafka或者類似的分布式隊列系統(tǒng)保存數(shù)據(jù),你需要幾天的數(shù)據(jù)量就保存幾天。
當(dāng)需要全量重新計算時,重新起一個流計算實(shí)例,從頭開始讀取數(shù)據(jù)進(jìn)行處理,并輸出到一個新的結(jié)果存儲中。
當(dāng)新的實(shí)例做完后,停止老的流計算實(shí)例,并把老的一些結(jié)果刪除。

//
可能有這樣回答:流計算給人的印象是對一些流式的、臨時的數(shù)據(jù)進(jìn)行計算,將結(jié)果保存后就將原始數(shù)據(jù)丟棄了,因此它不適合用來處理歷史數(shù)據(jù)。其實(shí)這種答案并不完全正確,對于基于Lambda架構(gòu)實(shí)現(xiàn)的Storm框架確實(shí)是這樣的,但對于后來出現(xiàn)的Spark并不是。

Storm是在2011年7月開源的,Spark是在2012年之后逐漸為人們所知的,因此在Nathan Marz設(shè)計Lambda架構(gòu)的時候,當(dāng)時還并沒有一個框架既可以用于離線處理,又可以進(jìn)行實(shí)時計算。但隨著Spark技術(shù)的發(fā)展,這一想法成為了可能,Spark本身可以用于批處理,而構(gòu)建在Spark之上的Spark Streaming又可以用于實(shí)時計算,因此利用一套系統(tǒng)來應(yīng)對批處理和實(shí)時計算相結(jié)合的業(yè)務(wù)完全是可行的。

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

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

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