1. 前言

随着互联网技术的发展,每一个业务都与数据息息相关,如搜索,推荐。这些业务有一个共同的特点是连接用户和数据。随着数据量的不断增加,对大数据的处理的要求也就会越来越高,在这期间出现了很多大数据的处理平台和工具,如Hadoop,Storm等。在不同的应用场景中也有不一样的数据架构,那么什么是大数据架构,引用如下的定义:

A big data architecture is designed to handle the ingestion, processing, and analysis of data that is too large or complex for traditional database systems.

从上述的定义来说,大数据架构主要是完成数据采集,处理以及分析的数据系统,其中数据系统提供了数据存储和数据查询的功能。对于一个完备的数据系统,需要具备一些关键的特性,如:容错性和健壮性,扩展性等等。单纯利用大数据处理平台很难同时完成数据的存储和数据的查询操作,以大家熟悉的Hadoop为例,Hadoop是一个功能强大的批处理工具,但是无法在低延迟的情况下完成数据的查询工作。

Lambda架构正在在这种需求下被设计出来的一个实时大数据框架,需要注意的是,Lambda并不是一个具有实体的软件产品,而是一个指导大数据系统搭建的架构模型。Lambda架构应具备实时大数据系统所应具备的一些关键特性,如容错性,健壮性,低延迟,可扩展,通用性,方便查询等。

2. Lambda架构

2.1. Lambda架构定义

Lambda架构是由Nathan Marz在2011年提出的一个实时大数据处理框架,用于处理大数据批量离线处理和实时数据处理的需求。引用Wikipedia对Lambda架构的定义:

Lambda architecture is a data-processing architecture designed to handle massive quantities of data by taking advantage of both batch and stream-processing methods.

从定义看出,Lambda架构充分利用了批处理和实时处理两个流程。

2.2. Lambda架构

Lambda架构的整体架构图如下所示(来源参考文献1):

在Lambda架构中将系统架构拆分为三层,分别为:Batch Layer,Speed Layer和Serving Layer。其中,Batch Layer用于批量处理全部的数据,Speed Layer用于处理增量的数据,在Serving Layer,综合Batch Layer生成的Batch Views和Speed Layer生成的Realtime Views,提供给用户查询最终的结果。

综上所述,Lambda架构通过Batch Layer和Speed Layer的两层设计实现了在一个系统内同时支持实时和批处理的数据处理;在查询阶段,通过Serving Layer在逻辑上统一了两种数据源的接口。

2.2.1. Batch Layer

Lambda架构的目标是同时支持大数据批量离线处理和实时数据处理,在其分层的设计下,Batch Layer通过预计算对全量数据进行批处理,生成不同的Batch Views,其中,预计算的流程会根据不同的业务设置不同的时间间隔。Batch Layer层的结构图下所示:

2.2.2. Speed Layer

Speed Layer用于支撑Lambda架构的实时数据处理流程,Batch Layer每次都是处理全量的数据,由于需要处理的数据量较大,每次构建Batch Views需要花费大量时间,这就导致在构建的过程中无法感知数据的变化,Speed Layer专门用于对数据变化的监测,用来处理增量的实时数据,对数据计算生成Realtime Views。Speed Layer层的结构图下所示:

2.2.3. Serving Layer

Serving Layer用于响应用户的查询请求,并将Batch Views和Realtime Views的结果进行了合并,得到最后的结果,返回给用户。具体过程如下图所示:

2.3. Lambda架构实例

由Lambda的定义可知,Lambda架构只是一个实时大数据处理框架,并不是一个大数据处理工具。在依照Lambda架构的实际设计中,可以根据实际的需求选择合适的工具或者组建,从参考文献3中总结到如下的图:

由上图可以看到,Spark Streaming/Storm/Flink可以用来构建Speed Layer,Spark/MapReduce可以用于构建Batch Layer,HBase/Redis/MongoDB可以用于存储。

3. 总结

Lambda架构是大数据中一个非常重要的架构设计,通过分层设计的思想,分别处理批量数据和增量数据,以满足实时性查询的要求。

参考文章

  1. 技术|深入浅出解析大数据Lambda架构
  2. Questioning the Lambda Architecture
  3. Architectures_BigData

大数据Lambda架构详解相关推荐

  1. 中台唯一的胜利果实:大数据中台架构详解

    提起业务流量,除了全民抢票平台 12306,当数阿里最有发言权. 上到双十一千亿级流量洪峰,下到日均百万.千万交易量的平台,每个业务模块背后的高并发架构理念,无处不在. 成熟的架构设计只是其一,要取得 ...

  2. 大数据lambda架构实现方案

    大数据lambda架构实现方案 基础结构 此项目主要为拓客查找潜在企业客户,展示企业客户详情需求提供服务.借鉴DDD设计思想对域进行划分,由于需求比较简单明确,此处主要按主体类型划分为企业客户域.店铺 ...

  3. 大数据平台Lambda架构详解

    Lambda架构由Storm的作者Nathan Marz提出.旨在设计出一个能满足.实时大数据系统关键特性的架构,具有高容错.低延时和可扩展等特. Lambda架构整合离线计算和实时计算,融合不可变( ...

  4. 什么是大数据lambda架构

    一.什么是Lambda架构 Lambda架构由Storm 的作者 [Nathan Marz] 提出, 根据维基百科的定义,Lambda 架构的设计是为了在处理大规模数据时,同时发挥流处理和批处理的优势 ...

  5. 一篇搞懂大数据Lambda架构及实践

    一.概述: 在聊lambda之前,首先要聊聊大数据中的一个痛点:如何在海量数据里做即时查询? 其实最简单的解决方法就是直接对海量数据做计算做查询,但是效率可想而知,有些计算可能需要几个小时甚至几天来完 ...

  6. 企业数据湖与大数据 Lambda 架构

    目录 1.Lambda架构背景介绍 2.大数据系统的关键特性 3.数据系统的本质 3.1.数据的本质 3.1.1.数据的特性:When & What 3.1.2.数据的存储:Store Eve ...

  7. 大数据Lambda架构

    1 Lambda架构介绍 Lambda架构划分为三层,分别是批处理层,服务层,和加速层.最终实现的效果,可以使用下面的表达式来说明. query = function(alldata) 1.1 批处理 ...

  8. 大数据学习路线详解,零基础学大数据学习路线

    在大数据蓬勃发展的现今,大家都看到了大数据未来不可限量的发展前景,跟着科技发展的潮流,不断学习新的技术知识,科多大数据相信,成为人生赢家不在话下. 大数据的三个发展方向,平台搭建/优化/运维/监控.大 ...

  9. 2019年大数据发展现状详解,现在学习晚不晚!

    大数据时代,大数据分析与应用大肆盛行.越来越多的大公司大企业大集团,都越来越重视大数据的影响和作用.可以说,谁想抢得大数据的一手可靠资料,谁就在未来的业务发展和拓宽中占据优势,谁就会在相关领域首先拔得 ...

最新文章

  1. vue之mapMutaions的使用 vuex中 action 用法示例 api.js的使用
  2. SVN客户端不显示绿色标识
  3. Android消息处理系统——Looper、Handler、Thread(转载)
  4. 二层交换机、三层交换机与路由器的比较
  5. 一天搞定HTML----标签的嵌套规则06
  6. 利用钩子机制取得Windows的消息监控权
  7. [js]删除以 [ 开始以 ]结尾且不含:内容
  8. java sipush_003-整型入栈指令(iconst、bipush、sipush、ldc)
  9. springMVC使用拦截器针对控制器方法做预处理、后处理、资源清理
  10. JS生成验证码、卡密,生成指定位数的字符串
  11. COMMUNITY DETECTION
  12. Gitlab实战3:Gitlab用户注册及管理
  13. 【CAD】天河云cad,剖面线/细线已经改变图层,颜色却不变的问题
  14. vue中使用语音提示
  15. 如何“延迟加载”嵌入式YouTube视频
  16. 乐乐的计算题目+题解
  17. 由Table_locks_waited想到的mysql 表锁问题
  18. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
  19. Python每日一报
  20. linux系统运维必会

热门文章

  1. 一键飞行模式 android,android开发之快速设置,一键wifi开闭,移动网络开闭,电池设置,飞行模式,...
  2. STM8S003F3通过PWM波实现三基色呼吸灯
  3. 上班无聊 ,手敲九九乘法表!
  4. 存储过程的使用(三)使用DECLARE定义局部变量
  5. 基于autojs编写一个自弹钢琴的脚本
  6. 计算机网络 脚本之家,魔兽世界怀旧服脚本工作室用脚本计算机统称
  7. 【word】在竖页中如何插入横页
  8. 双十一成交额给电商从业者带来了哪些思考
  9. 如何把密度函数化为标准正态二维分布_电气工程正态分布简介
  10. 小程序处理ipad页面不兼容/部分页面不显示