Lambda 架構由Storm的做者Nathan Marz提出,其設計目的在於提供一個能知足大數據系統關鍵特性的架構,包括高容錯、低延遲、可擴展等。其整合離線計算與實時計算,融合不可變性、讀寫分離和複雜性隔離等原則,可集成Hadoop, Kafka, Spark,Storm等各種大數據組件。
Lambda 架構可分解爲三層Layer,即Batch Layer, Real-Time(Speed) Layer和Serving Layer。架構
Batch Layer : 存儲數據集,在數據集上預先計算查詢函數,並構建查詢所對應的View。Batch Layer能夠很好的處理離線數據,但有不少場景數據是不斷實時生成且須要實時查詢處理,對於這狀況, Speed Layer更爲適合。函數
Speed Layer : Batch Layer處理的是全體數據集,而Speed Layer處理的是最近的增量數據流。Speed Layer爲了效率,在接收到新的數據後會不斷更新Real-time View,而Batch Layer是根據全體離線數據集直接獲得Batch View。oop
Serving Layer : Serving Layer用於合併Batch View和Real-time View中的結果數據集到最終數據集。大數據