官术网_书友最值得收藏!

1.4 大數據架構:Lambda Architecture

Lambda Architecture(LA)最早是Twitter工程師Nathan Marz提出來的,它是一種大數據軟件設計架構,其目的是指導用戶充分利用批處理和流式計算技術各自的優點實現一個復雜的大數據處理系統。通過結合這兩類計算技術,LA可以在延遲、吞吐量和容錯之間找到平衡點。如圖1-7所示,LA主要思想是將數據處理流程分解成三層:批處理層、流式處理層和服務層。

圖1-7 Lambda Architecture大數據架構

? 批處理層。它的主要思想是利用分布式批處理計算,以批為單位處理數據,并產生一個經預計算產生的只讀數據視圖。該層將數據流看成只讀的、僅支持追加操作的超大數據集。它可以一次性處理大量數據,引入復雜的計算邏輯(比如機器學習中的模型迭代計算,歷史庫的匹配等),其優點是吞吐率高,缺點是數據處理延遲高,即從數據產生到最終被處理完成,整個過程用時較長,通常是分鐘或小時級別。

? 流式處理層。為了降低批處理層帶來的高延遲,LA又引入了流式處理層,該層采用流式計算技術,大大降低了數據處理延遲(通常是毫秒或秒級別),其優點是數據處理延遲低,缺點是無法進行復雜的邏輯計算,得到的結果往往是近似解。

? 服務層。批處理層和流式處理層可以結合在一起,這樣既保證數據延遲低,也能完成復雜的邏輯計算(只能保證最終一致性)。為了整合兩層的計算結果,LA進一步引入服務層,它對外提供了統一的訪問接口以方便用戶使用。

一個經典的LA應用案例是推薦系統。在互聯網行業,推薦系統被應用在各個領域,包括電子商務、視頻、新聞等。推薦系統的設計目的是根據用戶的興趣特點和購買行為,向用戶推薦感興趣的信息和商品。推薦系統是建立在海量數據挖掘基礎上的一種高級商務智能平臺,以幫助商家為其顧客購物提供完全個性化的決策支持和信息服務。推薦系統最核心的模塊是推薦算法,推薦算法通常會根據用戶的興趣特點和歷史行為數據構建推薦模型,以預測用戶可能感興趣的信息和商品,進而推薦給用戶。

圖1-8所示為一個典型的推薦系統數據流水線架構。在該架構中,數據統一流入Kafka,之后按照不同時間粒度導入批處理和流式處理兩個系統中。批處理層擁有所有歷史數據(通常保存到HDFS/HBase中),通常用以實現推薦模型,它以當前數據(比如最近一小時數據)和歷史數據為輸入,通過特征工程、模型構建(通常是迭代算法,使用MapReduce/Spark實現)及模型評估等計算環節后,最終獲得最優的模型并將產生的推薦結果存儲(比如Redis)起來,整個過程延遲較大(分鐘甚至小時級別);為了解決推薦系統中的冷啟動問題(新用戶推薦問題),往往會引入流式處理層:它會實時收集用戶的行為,并基于這些行為數據通過簡單的推薦算法(通常使用Storm/Spark Streaming實現)快速產生推薦結果并存儲起來。為了便于其他系統獲取推薦結果,推薦系統往往通過服務層對外提供訪問接口,比如網站后臺在渲染某個訪問頁面時,可能從廣告系統、推薦系統以及內容存儲系統中獲取對應的結果,并返回給客戶端。

圖1-8 推薦系統數據流水線

主站蜘蛛池模板: 陆良县| 汉源县| 南木林县| 启东市| 错那县| 综艺| 永济市| 合川市| 略阳县| 文水县| 景德镇市| 南雄市| 澄迈县| 额济纳旗| 宜都市| 崇州市| 蛟河市| 商丘市| 吉林市| 利川市| 天津市| 横山县| 麻阳| 若羌县| 赤水市| 宁陵县| 漾濞| 柳江县| 丹阳市| 玛多县| 三亚市| 满城县| 芦山县| 黑龙江省| 前郭尔| 乳山市| 永泰县| 科尔| 临桂县| 乌鲁木齐县| 鄂州市|