大数据平台一般包括:数据收集,数据处理和数据结果应用/展示,针对数据本身和处理时效性的特点,主要分为数据批处理(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描述了当前主要使用的批处理和流处理框架,这也是当前主流的大数据平台架构:
后面的章节我会就各个部分(数据收集,数据处理,数据结果输出/展示)展开介绍,并详细说明里面的技术框架的使用。
閱讀更多 從零開始學架構 的文章