大数据平台系统架构简介

大数据平台一般包括:数据收集,数据处理和数据结果应用/展示,针对数据本身和处理时效性的特点,主要分为数据批处理(Batch,也叫离线处理)和流处理(Online/Speed,也叫实时处理或在线处理)。

当前绝大部分大数据工程师主要工作在如何集成各类大数据的框架,针对业务特点做相应的适配,无需自己设计新的框架。最常规的大数据平台架构是Lambda架构,它也是当前各类大数据平台,包括淘宝,美团,滴滴和腾讯的大数据平台的基本模型参考,后面的章节我会展开介绍这几家的主要数据平台的特点。Lambda架构由Nathan Marz提出,他也是Storm的作者,架构如图1所示:

大数据平台系统架构简介

图1 Lambda架构

它主要包括以下几点:

  1. All data entering the system is dispatched to both the batch layer and the speed layer for processing.
  2. 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.
  3. The serving layer indexes the batch views so that they can be queried in low-latency, ad-hoc way.
  4. The speed layer compensates for the high latency of updates to the serving layer and deals with recent data only.
  5. Any incoming query can be answered by merging results from batch views and real-time views.

-引自:Lambda Architecture, http://lambda-architecture.net

我提炼一下:简单来说,进入大数据处理平台的数据同时分发给批处理层和流处理层;批处理层是数据存储的主要地方,也是批处理计算的主要地方;服务层接收批处理的结果,供应用作查询;批处理处理的往往是时间跨度相对实时处理稍长的历史数据,相对流处理其结果延时较长,所以需要流处理对数据做实时计算,及时返回结果供应用使用。批处理和流处理的结果可以组合供应用查询。

Lambda是基本的模型,图2描述了当前主要使用的批处理和流处理框架,这也是当前主流的大数据平台架构:

大数据平台系统架构简介

图2 大数据平台架构

后面的章节我会就各个部分(数据收集,数据处理,数据结果输出/展示)展开介绍,并详细说明里面的技术框架的使用。


分享到:


相關文章: