Lambda架构 vs Kappa架构

转载 2017年05月11日 09:21:50

Lambda 架构
Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成Hadoop, Kafka, Spark,Storm等各类大数据组件。
Lambda 架构可分解为三层Layer,即Batch Layer, Real-Time(Speed) Layer和Serving Layer。
Batch Layer : 存储数据集,在数据集上预先计算查询函数,并构建查询所对应的View。Batch Layer可以很好的处理离线数据,但有很多场景数据是不断实时生成且需要实时查询处理,对于这情况, Speed Layer更为适合。
Speed Layer : Batch Layer处理的是全体数据集,而Speed Layer处理的是最近的增量数据流。Speed Layer为了效率,在接收到新的数据后会不断更新Real-time View,而Batch Layer是根据全体离线数据集直接得到Batch View。
Serving Layer : Serving Layer用于合并Batch View和Real-time View中的结果数据集到最终数据集。
这里写图片描述

一个典型的Lambda架构如下,

这里写图片描述
这种架构主要面向的场景是逻辑比较复杂同时又希望延迟比较低的异步处理程序,比如搜索引擎、推荐引擎等。
系统从一个流中读取被我们定义为不可变的数据,分别灌入实时系统如Storm和批处理系统如Hadoop,然后各自输出自己的结果,这些结果会在查询端进行合并。当然,这种系统也可有很多变种,比如上图中的Kafka也可替换成其他的分布式队列,Storm也可以替换成其他的流式计算引擎。
Kappa 架构
Kappa 架构是LinkedIn的Jay Kreps结合实际经验和个人体会,针对Lambda架构进行深度剖析,分析其优缺点并采用的替代方案。Lambda 架构的一个很明显的问题是需要维护两套分别跑在批处理和实时计算系统上面的代码,而且这两套代码得产出一模一样的结果。因此对于设计这类系统的人来讲,要面对的问题是:为什么我们不能改进流计算系统让它能处理这些问题?为什么不能让流系统来解决数据全量处理的问题?流计算天然的分布式特性注定其扩展性比较好,能否加大并发量来处理海量的历史数据?基于种种问题的考虑,Jay提出了Kappa这种替代方案。
这里写图片描述
那如何用流计算系统对全量数据进行重新计算,步骤如下:
1、用Kafka或类似的分布式队列保存数据,需要几天数据量就保存几天。
2、当需要全量计算时,重新起一个流计算实例,从头开始读取数据进行处理,并输出到一个结果存储中。
3、当新的实例完成后,停止老的流计算实例,并把老的一引起结果删除。
一个典型的Kappa架构如下,
这里写图片描述

Lambda架构 vs Kappa架构

Architecture
  • Post_Yuan
  • Post_Yuan
  • 2016年08月18日 15:18
  • 6751

Lambda架构与Kappa架构

待补充...
  • lifestxx
  • lifestxx
  • 2017年11月28日 10:23
  • 124

5大架构:细数数据平台的组成与扩展

导读:One size does not fit all! 数据处理平台已不集中于传统关系型数据库,各种其他平台层出不穷,也各有其适用范围。 从哪些角度去理解各种数据处理平台的设计思想及发展演...
  • sdulibh
  • sdulibh
  • 2015年09月14日 09:57
  • 1673

Lambda架构简介

原网址:http://www.ymc.ch/en/lambda-architecture-part-1 Hadoop框架带来了批量数据处理,但是网络规模大数据的实时处理仍然是一个挑战。 ...
  • map_lixiupeng
  • map_lixiupeng
  • 2015年01月06日 09:25
  • 3238

大数据Lambda架构

1 Lambda架构介绍 Lambda架构划分为三层,分别是批处理层,服务层,和加速层。最终实现的效果,可以使用下面的表达式来说明。 query = function(alldata) 1.1 批处理...
  • GreatElite
  • GreatElite
  • 2014年05月10日 19:58
  • 12413

数据系统架构——Lambda architecture(Lambda架构)

传统系统的问题 “我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你...
  • lvsaixia
  • lvsaixia
  • 2016年06月28日 20:33
  • 19118

使用 Apache Spark 的 Lambda 架构

市场上很多玩家已经建造了MapReduce工作流用来日常处理兆兆字节的历史数据。但是谁愿意等待24小时来拿到更新后的分析报告?这篇博客会向你介绍Lambda Architecture,它被设计出来既可...
  • xgjianstart
  • xgjianstart
  • 2016年12月14日 09:59
  • 478

用于实时大数据处理的Lambda架构

本文介绍了Lambda架构的基本概念。Lambda架构通过对数据和查询的本质认识,融合了不可变性(Immunability),读写分离和复杂性隔离等一系列架构原则,将大数据处理系统划分为Batch L...
  • brucesea
  • brucesea
  • 2015年05月23日 22:06
  • 8944

Lambda vs Kappa

Lambda 架构     Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实...
  • leone911
  • leone911
  • 2017年07月02日 12:02
  • 143

大数据系统的Lambda架构

http://www.tuicool.com/articles/uiyYFf Nathan Marz的大作Big Data: Principles and best practices of sca...
  • Baple
  • Baple
  • 2016年07月06日 14:44
  • 852
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lambda架构 vs Kappa架构
举报原因:
原因补充:

(最多只允许输入30个字)