大數據平臺一般包括:數據收集,數據處理和數據結果應用/展示,針對數據本身和處理時效性的特點,主要分為數據批處理(Batch,也叫離線處理)和流處理(Online/Speed,也叫實時處理或在線處理)。
當前絕大部分大數據工程師主要工作在如何集成各類大數據的框架,針對業務特點做相應的適配,無需自己設計新的框架。最常規的大數據平臺架構是Lambda架構,它也是當前各類大數據平臺,包括淘寶,美團,滴滴和騰訊的大數據平臺的基本模型參考,後面的章節我會展開介紹這幾家的主要數據平臺的特點。Lambda架構由Nathan Marz提出,他也是Storm的作者,架構如圖1所示:
它主要包括以下幾點:
- All data entering the system is dispatched to both the batch layer and the speed layer for processing.
- The batch layer has two functions: (i) managing the master dataset (an immutable, append-only set of raw data), and (ii) to pre-compute the batch views.
- The serving layer indexes the batch views so that they can be queried in low-latency, ad-hoc way.
- The speed layer compensates for the high latency of updates to the serving layer and deals with recent data only.
- Any incoming query can be answered by merging results from batch views and real-time views.
-引自:Lambda Architecture, http://lambda-architecture.net
我提煉一下:簡單來說,進入大數據處理平臺的數據同時分發給批處理層和流處理層;批處理層是數據存儲的主要地方,也是批處理計算的主要地方;服務層接收批處理的結果,供應用作查詢;批處理處理的往往是時間跨度相對實時處理稍長的歷史數據,相對流處理其結果延時較長,所以需要流處理對數據做實時計算,及時返回結果供應用使用。批處理和流處理的結果可以組合供應用查詢。
Lambda是基本的模型,圖2描述了當前主要使用的批處理和流處理框架,這也是當前主流的大數據平臺架構:
後面的章節我會就各個部分(數據收集,數據處理,數據結果輸出/展示)展開介紹,並詳細說明裡面的技術框架的使用。
閱讀更多 從零開始學架構 的文章