大数据通用架构
Lambda架构
- Lambda架构有三层,批处理层、速度层和服务层。
- 批处理层:批处理层是基于Hadoop生态,随着数据的更新会对所有数据进行重计算并将计算结果保存到NoSQL数据库中(如:electicalsearch、HBase、Redis、Hive等),提供批处理视图,批处理视图会整体批量更新;
- 速度层:由于批处理的机制导致延迟较大(天级/小时级),如果需要尽快的处理实时数据则需要提供单独的机制产生实时视图,通常只需要保存少量近期数据;
- 服务层:只会调用批处理视图和实时视图(汇总实时图和批处理视图),为应用系统提供查询服务;
- Lambda架构特点:
- 有批处理层、速度层和服务层三层;
- 所有数据最终都需要放在统一分布式存储上;
- 批处理层重新计算以后速度层的视图就可以丢弃;
- Lambda平台实现逻辑复杂(实时数据和批处理数据是两套处理)
Kappa架构
- 简单来讲Kappa架构就是在Lambda架构的基础之上实时数据处理机制替代批处理机制,离线数据如果需要重新计算则将离线数据转换(通过重放机制)成实时数据处理;
- Kappa架构的特点
- 一切都是流数据
- 单一的数据计算/分析框架
- ……
Unified Lamdba
由于Lamdba架构的复杂性导致应用开发复杂,需要使用不同框架同时处理实时数据和批处理数据;Unified Lamdba架构就提出来对实时数据和批处理数据处理使用统一的API进行封装,如果处理的是批处理数据则从批处理视图中查询,如果是实时数据则从实时视图中查询。现在华为开源等openlooKeng也可以看作是Unified Lamdba的一种实现。
Unified Lamdba架构的特点
- 使用统一的API查询,屏蔽和实时和批处理的差异,简化应用开发。