Lambda架构概述
大數(shù)據(jù)Lambda架構(gòu)
Lambda體系架構(gòu)簡介
Lambda體系架構(gòu)是一種開部署模型,主要用流處理來補充批處理,以解決實時大數(shù)據(jù)問題。理想情況下,我們掃描整個數(shù)據(jù)來達到用戶的某個查詢需求,而實際上訪問如此海量的數(shù)據(jù)必然使得響應(yīng)過慢。一般公司對可用性的要求比一致性要高,簡言之即服務(wù)的可用性更為重要。選擇高用性而不是一致性必然會導(dǎo)致較弱的一致性級別。寫后讀可能不會返回預(yù)期的響應(yīng)。如果不進行讀取修復(fù),數(shù)據(jù)可能會一直損壞。而系統(tǒng)性的更新會埋下數(shù)據(jù)無法恢復(fù)的隱患。
為了解決這些問題,Lambda體系結(jié)構(gòu)使用不可變的數(shù)據(jù)流,并在流計算的組合中利用預(yù)計算的批處理視圖。不可變地存儲數(shù)據(jù)消除了數(shù)據(jù)損壞的可能性,然而,不變的數(shù)據(jù)會導(dǎo)致更復(fù)雜的計算。
。Lambda架構(gòu)為計算查詢提供三層架構(gòu):批處理層、速度層和服務(wù)層。新傳入的數(shù)據(jù)流進批處理層和速度層,服務(wù)層通過整合批處理層和速度層來響應(yīng)用戶的查詢。
Batch Layer 批處理層
批處理層接收不可變的記錄流并把它們持久化到存儲系統(tǒng)里(如HDFS),存儲層用來保存主數(shù)據(jù)。任何因為數(shù)據(jù)狀態(tài)的改變(更新)都會在持久層里重新計算。同時它也為服務(wù)層的視圖生成任務(wù)。與加速層相比批處理層耗時較多。它能修復(fù)加速層的計算缺陷,因為它擁有全量的數(shù)據(jù)。批處理層定期重新計算視圖,并將結(jié)果輸出到只讀存儲器。
Speed Layer 加速層
加速層主要負(fù)責(zé)動態(tài)計算實時視圖。它能接受一個或多個數(shù)據(jù)源并從流數(shù)據(jù)里生成實時視圖。一旦計算出視圖,加速層將輸出到可接受隨機寫的數(shù)據(jù)存儲系統(tǒng)內(nèi)。、
通常,在加速層應(yīng)用流處理器Flink、Storm而Redis和Apache Cassandra適合實時視圖的存儲。
Serving Layer 服務(wù)層
服務(wù)層負(fù)責(zé)整合實時和批處理視圖即它通過獲取最新的加速層和批處理層數(shù)據(jù)并做整合最終輸出匯聚后的視圖。服務(wù)層的關(guān)鍵是保證給定查詢的響應(yīng)時間最短,
因此,服務(wù)層可以并行化視圖的查詢。當(dāng)兩個結(jié)果都完成時,它可以生成一個聚合視圖。
總結(jié)
以上是生活随笔為你收集整理的Lambda架构概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深圳证券交易所成立时间
- 下一篇: 运费险是一个订单一个还是一个商品一个