Lambda架構與Kappa架構對比

首先大數據處理系統需要幾個特性:

1、容錯性和魯棒性:對大規模分佈式系統來說,機器是不可靠的,可能會當機,但是系統需要是健壯、行爲正確的,即使是遇到機器錯誤。
2、低延時:很多應用對於讀和寫操作的延時要求非常高,要求對更新和查詢的響應是低延時的。
3、橫向擴容:當數據量/負載增大時,可擴展性的系統通過增加更多的機器資源來維持性能。
4、通用性:系統需要能夠適應廣泛的應用,包括金融領域、社交網絡、電子商務數據分析等。
5、可擴展:需要增加新功能、新特性時,可擴展的系統能以最小的開發代價來增加新功能。
6、方便查詢:數據中蘊含有價值,需要能夠方便、快速地查詢出所需要的數據。
7、易於維護:系統要想做到易於維護,其關鍵是控制其複雜性,越是複雜的系統越容易出錯、越難維護。
8、易調試:當出問題時,系統需要有足夠的信息來調試錯誤,找到問題的根源。

Lambda 架構(整合離線計算和實時計算)

特點:
1、批處理層(batch layer)
2、快速處理層(speed layer)用於處理新數據和服務層更新造成的高延遲補償
3、HDFS來存儲(raw數據)
4、服務層(serving layer)用於加載和實現數據庫中的批處理視圖
5、任何Query的答案,都能通過合併批處理視圖和實時視圖的結果來獲得

如圖:在這裏插入圖片描述
在這裏插入圖片描述

Kappa 架構(實時計算和流式計算)

特點:
1、用Kafka或者類似的分佈式隊列系統保存數據或者用MongoDB。
2、當需要全量重新計算時,重新起一個流計算實例,從頭開始讀取數據進行處理,並輸出到一個新的結果存儲中。
3、完成新的job、需要釋放job的資源。

如圖:
在這裏插入圖片描述

Lambda架構 VS Kappa架構

Lambda 架構相對於kappa 架構出現的更早,Lambda 架構出現的時期,還沒有哪一種大數據計算引擎能同時很好地解決數據批處理和流式處理的問題。Lambda 架構通過建立批處理層、速度層、服務層的方式,將批處理計算框架、實時計算框架計算的數據結果進行合併,既滿足了對歷史數據分析的需求,又滿足了數據實時性的要求。Lambda 構架是在當時基於有限條件下的一種臨時方案,具有歷史侷限性。Lambda 架構在代碼維護複雜性、計算框架運維複雜性上的問題,Kappa 架構都針對性的進行了改善。然而Kappa 架構也並不是完美的。因爲Kappa 架構對歷史數據的計算都是現計算的,當需要追溯的時間跨度很長、計算邏輯複雜的情況下,現計算需要的時間是否能被接受是一個問題。

參考: RangeYan

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章