Lambda架构

Lambda 架构详解-1 1.为什么要用Lambda Architecture 在大数据处理系统中,数据处理的可靠性和实时性是一对矛盾,往往不可兼得。可靠性是指在任何异常出现的情况下,数据处理都能够做到不重不丢,并且最终得到准确的结果。实时性是指数据从输入到处理完毕输出的时间间隔。一般来说,对于像Hadoop MapReduce这样的批处理系统来说,可靠性很高,而实时性很差;对于Storm这样的流式处理系统来说,... 阅读详情

1.背景

Q : 大数据系统的关键问题:如何实时地在任意大数据集上进行查询

A : 最简单的方法是,直接在全体数据集上运行查询函数得到结果,但是这种方法的计算代码太大,所以不现实。

2.为什么要用 Lambda Architecture

在大数据处理系统中,数据处理的可靠性和实时性是一对矛盾,往往不可兼得。可靠性是指在任何异常出现的情况下,数据处理都能够做到不重不丢,并且最终得到准确的结果。实时性是指数据从输入到处理完毕输出的时间间隔。一般来说,对于像Hadoop MapReduce这样的批处理系统来说,可靠性很高,而实时性很差;对于Storm这样的流式处理系统来说,则情况正好相反。那么,有没有办法使得数据处理系统即可以做到高可靠,又可以做到低延迟呢?Lambda Architecture就是这个问题的答案。

Lambda Architecture是为了满足如下需求:

• 系统故障或人为错误不丢数据
• 数据分析低延迟
• 系统具备线性扩展能力
• 系统中很容易增加新特性

Lambda Architecture由 batch layer 、speed layer、 serving layer组成。

在输入端集中接收数据,并拷贝数据,分别导入到batch layer和 speed layer。

3.组成

3.1 Batch Layer

• 这层的功能主要有两点:

1.存储数据集   
2.在数据集上预先计算查询函数,构建查询所对应的view

• Batch layer的职责是保证数据处理的准确性和可靠性。

• Batch layer首先把数据以其原始格式存储在HDFS上,以加强系统的可靠性。然后,利用Hadoop MapReduce作业对数据进行处理,并将结果保存起来(这种处理之后的数据称之为batch view)。Hadoop作业具有很好鲁棒性,在运行过程中出现各种异常时都不会损失数据。对于存储系统来说,这种批处理方式只需要随机读、追加写,不需要处理随机写、加锁、数据一致性等问题,因此大大简化了存储系统的设计。但是batch layer对数据处理的延迟是很大的,通常是几个小时到几天。

3.2 Speed Layer

• Speed layer的职责是满足所有实时性处理的需求。

• Speed layer通常基于Storm这样的流式计算平台,通过快速的增量式算法,以分钟级、秒级甚至毫秒级来读取、分析、保存数据。对于存储系统,由于需要支持持续的update操作,其设计要复杂的多。为了简化问题,通常使用划窗机制来保存一段时间的数据,划窗的时间一般和batch layer的数据处理一致。

• 流式处理往往使用内存计算,这意味着当出现异常(比如升级或工作节点异常)时,可能会导致数据的丢失或计算结果错误。然而,Lambda Architecture却不需要过多考虑这类问题,因为下一次batch layer的作业会再次处理所有数据并获得准确的结果。

3.3 Serving Layer

• Serving layer的职责是将speed layer输出数据merge到batch layer输出数据上,从而得到一份完整的输出数据,并保存到诸如HBASE这样的NoSQL数据库中,以服务于在线检索应用。在batch计算结果之上meger少量实时数据,其结果同完全使用batch计算相比,具有很好的近似性。

4.Lambda Architecture的收益

• 算法可以同时分析历史数据和短期实时数据,兼顾了准确性和实时性

• 向存储介质的随机写入大大减少了,提升了性能

• Batch Layer(在HDFS上)保存了原始数据,可以避免人为错误造成的数据损失

• 容错性。Speed Layer中处理的数据也不断写入Batch Layer,当Batch Layer中重新计算的数据集包含Speed Layer处理的数据集后,当前的Realtime View就可以丢弃,这意味着Speed Layer处理中引入的错误,在Batch Layer重新计算时都可以得到修正。

• 复杂性隔离。Batch Layer处理的是离线数据,可以很好的掌控。Speed Layer采用增量算法处理实时数据,复杂性比Batch Layer要高很多。通过分开Batch Layer和Speed Layer,把复杂性隔离到Speed Layer,可以很好的提高整个系统的鲁棒性和可靠性。

当然,获得这些收益也是有代价的。Batch layer和speed layer事实上做了重复的计算。从资源的角度看,Lambda architecture消耗了更多的资源。

Lambda 架构 (Partial Recomputation algorithms),也即选取必要的历史数据进行重新计算,以生日推断算法为例,假设新数据中只包含用户 A 的数据,那么,我们可以从主数据集中选取用户 A 的历史数据与新数据合并,再进行计算,这样计算的数据量将会大大减少。比如,假设用户的报表需要按月、按天、按小时、按分钟等维度的视图,最简单的方法是只保存一份分钟级视图,若用户需要查询小时级粒度的数据,临时汇聚。而增量计算只会对新的数据进行计算,并将计算出来的视图与已有视图进行合并,形成新的批视图。 阅读详情

相关推荐

Lambda架构&Kappa架构

在大数据3.0时代,Lambda大数据架构已经无法满足企业用户日常大数据分析和敬意运营的需要,去ETL化的IOTA大数据架构才是未来。 Lambda架构 Lambda 是用Nathan Marz(实时处理框架storm的作者) 提出的用于同时处理离线和实时的数据的,可容错的,可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。它通过批量MapReduce作业提供了虽有些延迟但是...

信念随梦的博客 4396

【系统架构师】-论文-大数据Lambda架构的应用

我就职于一家在线教育互联网公司,为了深耕中小学的教学资源消费市场,公司决定在2017年3月升级一款教学资源搜索与下载产品“校通”。作为系统架构师,我负责了该产品的系统架构工作。本文以“校通”产品升级为例,论述了在大数据背景下应用Lambda架构的过程:首先,分析产品开发特点与Lambda架构的技术选择;其次,介绍具体的架构设计与实现细节,包括批处理层、速度层和服务层的技术应用;最后,论述了架构实施的效果和实际运行中的经验教训。

宣晨光 2216

Lambda架构与Kappa架构对比详解

fill:#333;color:#333;color:#333;fill:none;数据源批处理层加速层Batch View服务层查询结果✅Kappa架构由Jay Kreps提出,是Lambda架构的简化版本,,通过**数据重放(Replay)**实现批处理功能。fill:#333;color:#333;color:#333;fill:none;数据源消息队列流处理引擎存储层查询结果✅。

慢慢 1495

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译

【大数据架构】Lambda Architecture – Realtime Data Processing 论文重点翻译

hiliang521的博客 1502

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

传统系统的问题 “我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你好”——阿里巴巴董事局主席马云。 数据量从M的级别到G的级别到现在T的级、P的级别。数据量的变化 数据管理系统(DBMS)和数仓系统(DW)也在悄然的变化着。

永不言弃01 3万+

lambda架构和kappa架构的对比

1. lambda架构 1.1. 优点 Lambda 架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性。 Lambda 架构总共由三层系统组成:批处理层(Batch Layer),速度处理层(Speed Layer),以及用于响应查询的服务层(Serving Layer)。 在 Lambda 架构中,每层都有自己所肩负的任务。 批...

吴加顺 3051

2024年架构设计师论文-“大数据处理架构及其应用”

在202X年的x月,我所在公司荣幸中标了一项旨在推动某城市街道交通系统全面升级的重大项目,主要负责软件架构和网络安全体系结构设计工作。作为该项目的核心成员,我担任了系统架构设计师的角色,专注于软件架构的蓝图绘制与网络安全体系的精心构建。此项目横跨两年时光,总投资高达XXX万人民币,不仅标志着该城市在信息化转型征途上迈出了坚实步伐,更实现了智慧交通战略蓝图的精准落地。

weixin_54663210的博客 2253

带有Apache Spark的Lambda架构

目标 市场上的许多玩家已经建立了成功的MapReduce工作流程来每天处理以TB计的历史数据。但是谁愿意等待24小时才能获得最新的分析结果?这篇博文将向您介绍旨在利用批处理和流处理方法的Lambda架构。我们将利用Apache Spark(Core,SQL,Streaming),Apache Parquet,Twitter Stream等实时流数据快速访问历史数据。还包括清晰的代码和直观的演示! ...

Myhoooyo的博客 5354

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

本文介绍了Lambda架构的基本概念。Lambda架构通过对数据和查询的本质认识,融合了不可变性(Immunability),读写分离和复杂性隔离等一系列架构原则,将大数据处理系统划分为Batch Layer, Speed Layer和Serving Layer三层,从而设计出一个能满足实时大数据系统关键特性(如高容错、低延时和可扩展等)的架构。

brucesea的专栏 2万+

DEAP数据集实战指南:从脑电信号到情绪分类的完整流程解析

本文提供了DEAP数据集在脑电信号情绪识别领域的完整实战指南。详细解析了数据下载、结构理解、频带功率特征提取等核心步骤,并演示了如何构建和评估机器学习分类模型,为研究者实现从原始脑电信号到情绪分类的完整流程提供了清晰路径。

jj890的博客 900

群晖NAS实战:Python项目部署全流程解析

本文详细解析了在群晖NAS上部署Python项目的完整流程。从开启SSH、选择连接工具,到通过套件中心一键安装Python3、配置pip及国内镜像源,再到上传项目、安装依赖、后台运行及排错,提供了清晰的避坑指南。旨在帮助用户将群晖NAS从存储设备转变为可执行自定义任务的智能服务器,实现自动化脚本、数据监控等应用。

weixin_29057163的博客 593

Kappa架构与Lambda架构比较

目标 市场上的许多玩家已经建立了成功的MapReduce工作流程来每天处理以TB计的历史数据。但是谁愿意等待24小时才能获得最新的分析结果?这篇博文将向您介绍旨在利用批处理和流处理方法的Lambda架构。我们将利用Apache Spark(Core,SQL,Streaming),Apache Parquet,Twitter Stream等实时流数据快速访问历史数据。还包括清晰的代码和直观的...

haibucuoba的博客 2万+

【ROS学习笔记】8.话题消息(Message)的定义与使用

ROS学习笔记8——话题消息(Message)的定义与使用

takedachia的博客 9548

Lambda架构和Kappa架构

数据系统架构——Lambda architecture(Lambda架构) 传统系统的问题 “我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你好”——阿里巴巴董事局主席马云。 数据量从M的...

shengjk1的博客 5093

用AI+Playwright实现零代码UI自动化测试:以登录页面为例的实战指南

本文详细介绍了如何利用AI与Playwright结合实现零代码UI自动化测试,特别以登录页面为例进行实战演示。通过自然语言描述生成测试脚本,大幅降低技术门槛,提升测试效率,并支持跨浏览器验证。适合非技术人员快速上手专业级自动化测试。

weixin_28842269的博客 402

通俗傻瓜式理清光栅化渲染和光线追踪渲染的原理

用通俗语言傻瓜式的讲清楚光栅渲染和光线追踪渲染的原理,方便没有相关理论基础的朋友理解入门。

qq_37366618的博客 2万+

AWS Lambda 架构深入探究

AWS Lambda 是现代云架构中最受欢迎的服务之一,因其能够在完全托管的无服务器环境中运行代码而广受认可。然而,尽管 Lambda 广受欢迎,许多开发者和架构师对它的底层运作机制却知之甚少,常常将其视为“编写能够在云端神奇运行的代码”的简单方法。本文将探讨 AWS Lambda 背后的架构,详细解析它如何以真正的无服务器方式管理实例、配置资源并处理执行。最终,您将全面了解 Lambda 的内部工作原理,从而能够进行更明智的优化,并在应用程序中更有效地利用它。

介绍AWS Azure GCP devops Terraform 等技术 1838

EtherCAT主站教程3--适配伺服驱动器(模式配置)

目前通用的伺服驱动器的位置模式、速度模式以及其他模式是伺服系统中常见的控制模式,切换这些模式通常需要根据具体的伺服驱动器型号和控制协议(如EtherCAT、CANopen、Modbus等)进行配置。以下是这些模式的概述及切换方法的一般性指导:协议规范中,一共有以下几种模式:其中模式1、3、6对于比较常用,也更容易上手。

weixin_52626887的博客 793

什么是Lambda架构?

写在前面 本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定大数据理论体系 解答 1. Lambda架构定义了一套面向大数据应用的模式和准则。更重要的是,它允许同时查询历史数据和实时新增的数据,并且获得期望的分析视图。 2. 处理历史数据(批处理)和实时数据。 3. 技术无关和通用性。Lambda架构是一种通用的模式,完全不依赖于任何技术,而且任何技术只要能满足需求,都可以在 Lamb

Shockang的博客 1万+

AutoSAR系列讲解(入门篇)2.1-AppL概述

该章主要是讲解SWC是如何在ECU中分布的

雪云飞星的博客 4万+

AUTOSAR模式管理-EcuM多核处理及其他概念

因此,EcuM不请求状态。因此,BswM必须确保,例如,在调用EcuM_GoHalt或EcuM_GoPoll之前,必须将关机目标从其默认值更改为ECUM_STATE_SLEEP。对于ECU的关闭,BswM(位于主EcuM的同一个分区中)最终调用主核上的GoOff,该GoOff将请求分发给所有的从核。在ECU Manager模块的早期版本中,睡眠目标被特殊处理,因为在ECU中实现的睡眠模式取决于ECU的功能。在使用了外部的SBC控制相关的MCU的下电的时候,在OFF阶段最后调用SBC进入到Sleep的指令。

m0_49148264的博客 1340

聊聊Lambda架构

定义 在数据分析场景中,我们可能会遇到这样的问题。例如,我们要做一个推荐系统,如果我们用批处理任务去做,一天或者一小时的推荐频次明显延迟太大。如果用流处理任务,虽然延迟的问题解决了,然而只用实时数据而没有历史数据,那么准确性就无法保证。因此需要结合批处理的历史数据和流处理的实时数据进行处理,既能保证准确性,又能保证实时性。再比如反作弊系统,实时识别作弊用户的时候同时需要用到用户的历史行为。 针...

渡码的专栏 1371

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: docker中vi后按键混乱的bug
下一篇: hive SQL COALESCE 函数
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值