Kappa 与 Lambda 架构介绍与对比

Lambda 架构

Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成Hadoop, Kafka, Spark,Storm等各类大数据组件。
Kappa 与 Lambda 架构介绍与对比_第1张图片

Lambda 架构可分解为三层:

  • BACTH LAYER : 利用批处理引擎处理离线数据。
  • REAL-TIME LAYER : 利用实时计算引擎处理实时增量数据流。
  • SERVING LAYER : 合并BATCH LAYER 和REAL-TIME LAYER 的结果数据集,并提供查询服务。

Kappa 架构

Lambda 架构的一个很明显的问题是需要维护两套分别跑在批处理和实时计算系统上面的代码,而且这两套代码得产出一模一样的结果。
Kappa架构的核心思想包括以下三点:

  • 用Kafka或者类似的分布式队列系统保存数据,你需要几天的数据量就保存几天。
  • 当需要全量重新计算时,重新起一个流计算实例,从头开始读取数据进行处理,并输出到一个新的结果存储中。
  • 当新的实例做完后,停止老的流计算实例,并把老的一些结果删除。

两种架构比较

对比项 Lambda 架构 Kappa 架构
数据处理能力 可以处理大规模的历史数据 历史数据处理的能力有限
机器开销 批处理和实时计算需一直运行,机器开销大 必要时进行全量计算,机器开销相对较小
存储开销 只需要保存一份查询结果,开销较小 需要存储新老实例结果,存储开销相对较大
开发、测试难度 实现两套代码,开发、测试难度较大 只需面对一个框架,开发、测试难度相对较小
运维成本 维护两套系统,运维成本大 只需维护一个框架,运维成本小

你可能感兴趣的:(大数据)