一、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大数据架构,它不但能够同时满足不同时效不同复杂程度的数据需求,还能有效节省企业机器成本。在离线链路(批处理层),通常能够对数据做大量复杂的计算,数据产出通常会是T+1(隔天)的,在某些场景离线链路会分裂成离线(天级别)和近线(小时级别)的两条链路。实时链路(快速处目前大部分互联网公司采用这种大数据架构,它不但能够同时满足不同时效不同复杂程度的数据需求,还能有效节省企业机器成本。在离线链路(批处理层),通常能够对数据做大量复杂的计算,数据产出通常会是T+1(隔天)的,在某些场景离线链路会分裂成离线(天级别)和近线(小时级别)的两条链路。实时链路(快速处理层),通常用于实现核心KPI指标计算、或者高时效要求业务计算(实时推荐等)。
Kappa架构还在持续演化中,需要更多企业用户打磨和参与。目前它更多的部署在业务实时性要求比较高的公司、部门中,最著名的应该是阿里的双十一大屏项目。

互联网数仓之:Lambda架构 vs Kappa架构相关推荐

  1. 第十七期:详解大数据处理中的Lambda架构和Kappa架构

    在这张架构图中,大数据平台里面向用户的在线业务处理组件用褐色标示出来,这部分是属于互联网在线应用的部分,其他蓝色的部分属于大数据相关组件,使用开源大数据产品或者自己开发相关大数据组件.   典型互联网 ...

  2. 大数据平台数据处理之Lambda架构和Kappa架构

    首先我们来看一个典型的互联网大数据平台的架构,如下图所示: 在这张架构图中,大数据平台里面向用户的在线业务处理组件用褐色标示出来,这部分是属于互联网在线应用的部分,其他蓝色的部分属于大数据相关组件,使 ...

  3. Lambda架构和Kappa架构

    与 Lambda 架构不同的是,Kappa 架构去掉了批处理层这一体系结构,而只保留了速度层.你只需要在业务逻辑改变又或者是代码更改的时候进行数据的重新处理. 在讲述完 Kappa 架构之后,我想强调 ...

  4. Lambda架构与Kappa架构 区别

    Lambda 架构: Lambda 架构总共由三层系统组成的:批处理层(Batch Layer),速度处理层(Speed Layer),以及用于响应查询的服务层(Serving Layer). 批处理 ...

  5. Lambda架构,Kappa架构和去ETL化的IOTA架构

    经过这么多年的发展,已经从大数据1.0的BI/Datawarehouse时代,经过大数据2.0的Web/APP过渡,进入到了IOT的大数据3.0时代,而随之而来的是数据架构的变化. ▌Lambda架构 ...

  6. Lambda架构与Kappa架构对比

    首先大数据处理系统需要几个特性: 1.容错性和鲁棒性:对大规模分布式系统来说,机器是不可靠的,可能会当机,但是系统需要是健壮.行为正确的,即使是遇到机器错误. 2.低延时:很多应用对于读和写操作的延时 ...

  7. 大数据架构之--Kappa架构

    一.什么是Kappa架构 Kappa 架构是由 LinkedIn 的前首席工程师杰伊·克雷普斯(Jay Kreps)提出的一种架构思想.克雷普斯是几个著名开源项目(包括 Apache Kafka 和 ...

  8. 大数据架构中的流式架构和Kappa架构

    关于大数据的架构有很多,比如说传统的大数据架构,当然,还有很多经典的大数据架构,比如说流式架构和Kappa架构.流式架构和Kappa架构在大数据中的应用还是很多的,在这篇文章中我们就给大家介绍一下关于 ...

  9. 数据库与MPP数仓(十五):MPP的架构与选型

    前面讲了数据仓库的价值.构建思路.实例,完成数据仓库的概念.逻辑.物理模型设计后,数仓的产品选型也是需要考虑的部分,根据数据存储量.查询效率.并发能力可以选用MPP数仓和基于Hadoop的分布式数仓等 ...

  10. Lambda架构 vs Kappa架构

    Lambda 架构     Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错.低延迟.可扩展等.其整合离线计算与实时计算 ...

最新文章

  1. C++:随笔2--I/O实践
  2. Nat. Mach. Intell.|从局部解释到全局理解的树模型
  3. 今日 Paper | 高效骨干搜索;学习扩充;最小人脸检测器;​DEPARA等
  4. create-react-app支持antd按需导入
  5. ECCV2018 论文简析 Oral_1 持续更新
  6. Polyfill工作笔记001---简介
  7. 精读《手写 SQL 编译器 - 回溯》 1
  8. 线性代数中(线代中)的克莱姆法则,又译克拉默法则(Cramer‘s Rule)
  9. 豆丁网文档免登陆免积分下载工具原理分析
  10. matlab中制作软件,如何用matlab制作一个小软件
  11. Python机器学习:基于西瓜数据集的KNN算法实现
  12. vue中用cdn引入优化vender.js大小,和cdn 引入mint-ui的问题
  13. nginx反向代理和正向代理
  14. Mac中Chrome浏览器的快捷键
  15. gee学习1geemap入门(环境搭建和地图创建)
  16. xp 英文版 安装后出现 中文乱码,解决方案。
  17. 移动设备管理软件优劣,南京烽火星空来判别
  18. 线性代数需要注意的一些点
  19. SpringMVC框架 |自定义类型转换器与日期格式化
  20. 基于粤嵌6818开发板上通过网络连接实现文件传输

热门文章

  1. node配置微信小程序解密消息以及推送消息
  2. 幽游白书雕像:岁月流转,闪耀如初,我回来了
  3. APP渠道:安卓app推广渠道都有这几个!
  4. LOB浅析(CLOB/BCLOB/NCLOB)
  5. 手工创建Oracle11g完整版(超详细)
  6. linux创建777权限的文件,Linux文件夹权限777,无法创建文件
  7. OpenVINO系列19_face_detection检测人脸并做标记
  8. 身份证实名认证接口,实名认证API接口文档
  9. Firefox 浏览器更新以后出现书签丢失
  10. delphi math 单元函数