第四章 架构与原型
一、大数据平台架构与设计
1、Lambda架构
Lambda架构师大数据平台里最成熟、最稳定的架构,它的核心思想:将批处理作业和实时流处理作业分离,各自独立运行,资源互相隔离。分层如下:
- Batch Layer:主要负责所有批处理操作,支撑该层的技术也以Hive、Spark-SQL或Map-Reduce这类批处理技术为主。数据处理依赖的主数据也是该层维护。
- Serving Layer:以Batch Layer处理的结果数据为基础,对外提供延时的数据查询和ad-hoc查询服务。批处理本身比较慢,无法支撑实时的查询请求,从Serving Layer角度看,Batch Layer 的工作本质上时一种“预结算”,即预先对大体量数据集进行处理,得到相对较小的结果集,然后用Serving Layer接手,提供实时的数据查询服务。Serving Layer既可以使用包括关系型数据库在内的传统技术,也可使用Kylin、Presto、Impala或Druid等大数据OLAP产品。
- Speed Layer:使用流式计算技术实时处理当前数据,它的局限在于只能处理当前新生成的数据,无法对全部历史数据进行操作。Speed Layer经常使用Storm、Spark Streaming或Flink等大数据流计算框架。
Lambda脚骨使用两条数据管道来分别对批处理和实时处理两种场景,是很健壮的一种架构。但缺点是需要开发团队针对批处理和实时处理分别进行开发,同时维护两套代码,增加了共工作量和维护成本。
2、Kappa架构
Kappa架构师对Lambda架构的一种简化,它使用流计算技术统一批处理和实时处理两条数据处理的pip