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

news2024/11/17 7:18:48

文章目录

  • 1. INTRODUCTION
  • 2. LAMBDA ARCHITECTURE
    • A) BATCH LAYER
    • B) SPEED LAYER
    • C) SERVICE LAYER
  • 3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE
  • 4. A PROPOSED SOLUTION
    • 1. 架构说明
    • 2. 前后架构改进对比

1. INTRODUCTION

Lambda架构背后的需求是由于虽然MR能够处理大数据量,且准确性很高,但是高延迟不适用于实时计算。一个好的解决方案是通过kafka+spark组合为流模型,虽然能够提供高可用、低延迟但是准确性会有问题。
 

lambda架构说明
lambda架构的目标是统一批处理和流处理,并满足可拓展、高可用(对于硬件和人工的错误)需求。

The LA architecture aims to meet the needs of a robust system that is scalable and fault-tolerant against hardware failures and human mistakes

 

2. LAMBDA ARCHITECTURE

在这里插入图片描述

 

A) BATCH LAYER

不可变数据集的特点

  • LA的难点在于主数据集。主数据集不断地以追加方式接收新数据。这种方式非常适合维护数据的不可变性。Marz强调不可变数据集的重要性,因为具备容错性,可以重复计算。
  • 批处理层更喜欢重新计算算法而不是增量(状态计算ing)算法。
  • 增量算法的问题在于无法解决人为错误所带来的挑战。批处理层的重新计算特性创建了简单的批处理视图,因为在预计算期间解决了复杂性问题。

 

支持数据模型简化

其次,因为不需要对数据建立索引,所以不可变数据模型支持简化。批处理层中的主数据集不断增长,并且是体系结构中的详细数据源。主数据集允许对历史数据进行随机读取

 

批处理对于机器学习的作用

此外批处理用于处理历史数据并提供准确的结果,机器学习算法需要时间来训练模型,并随着时间的推移提供更好的结果。

 
批处理的主要问题是高延迟性,所以需要速度层。

 

B) SPEED LAYER

速度层实时处理消息,虽然实时处理没有考虑到数据的完整性,但是弥补了批处理层的高延迟。

为了创建最新数据的实时视图(视图生产到服务层),速度层牺牲了吞吐量,来降低延迟。当数据接收后实时视图便生成,但不如批处理层的完整或精确。这种设计背后的想法是,一旦批处理层的准确结果到达,它们就会覆盖实时视图
 

不同层次的角色分离是 Lambda 架构之美的体现。

  1. 批处理层通过对整个主数据集进行运行参与了资源密集型操作。
  2. 速度层采用不同的方法来满足低延迟的要求。与批处理层的重新计算方法相比,速度层采用增量计算。增量计算更加复杂,但速度层处理的数据规模要小得多,而且视图是短暂的。采用随机读/随机写方法重用和更新以前的视图。

 

增量计算策略

基本逻辑:批处理先加载所有的数据生成批视图。实时处理当加载新数据时就会创建视图,当再有新的数据时,通过使用之前的视图+新数据来更新实时视图。
在这里插入图片描述

 

C) SERVICE LAYER

服务层负责存储批处理层和速度层的输出。
 

流批结果配合使用

根据架构图,每当查询 Lambda 架构时,服务层会合并批处理和实时视图,并输出结果。合并的视图可以显示在仪表板上或用于创建报告。因此,Lambda 架构将数据密集但准确的批处理层的结果与快速响应的速度层根据所需的用例进行组合。
 
这里的视图就是:流批任务生成的物化视图。

 

3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE

一开始LA的批数据层由hadoop、MapReduce组成,速度层由storm组成,服务层由ElephantDB 和 Cassandra构成。

LA的问题:

  • 开发和维护复杂
    Lambda架构中对同样的业务逻辑进行两次编程:一次为批量计算的ETL系统,一次为流式计算的Streaming系统。针对同一个业务问题产生了两个代码库,维护起来麻烦。
  • 创建一个统一解决方案需要处理流批结果合并需求、debug问题以及操作的复杂性
  • 输入数据需要同时进入到批和速度层
  • 并不是那么通用:现实中许多企业要么都使用批处理系统,要么使用流处理系统去处理他们的问题

 

4. A PROPOSED SOLUTION

1. 架构说明

就上面描述的,LA可能会导致编码的复杂性,debug、维护的问题。可以通过组合不同的组件来实现LA,这里通过使用kafka、spark(计算引擎)、Cassandra(视图)、Zeppelin(存储层)来优化LA架构。

之前的架构中,有两套处理系统用于处理批和流数据,批模式中用HDFS+MR处理、流中使用Storm处理,此架构中使用spark作为流批一体的计算引擎。如下图:

在这里插入图片描述

 

2. 前后架构改进对比

在这里插入图片描述
 

spark VS MR
在这里插入图片描述

改进的架构中

  • kafka减少了复制数据的开销。LA中的批和速度层可以消费kafka中的数据,这减少了复制的复杂性以及简化了架构。
  • spark的流批Rich API非常适合LA架构,RDD的代码可以被重用,并且API简化了维护和debug。此外对于批处理,spark基于内存处理提高了处理速度。
  • kafka的commit log对于事件流非常有效。commit log是不可变的,所以存储为追加数据。用户的历史事件可以被用于处理。
  • kafka的log可以被重放,新的视图可以通过Cassandra物化。

 

参考:
https://download.csdn.net/download/hiliang521/88881089

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476522.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【精选】Java项目介绍和界面搭建——拼图小游戏 上

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

SpringCloudNacos注册中心服务分级存储模型

文章目录 服务分级存储模型概述配置集群同集群优先的负载均衡 权重配置总结 之前对 Nacos注册中心入门 已经做了演示. 这篇文章对 Nacos 的服务分级存储模型做理论与实践. 服务分级存储模型概述 一个服务可以有多个实例,例如我们的 user-server,可以有:…

Codeforces Round 929 (Div. 3)

Codeforces Round 929 (Div. 3) Codeforces Round 929 (Div. 3) A. Turtle Puzzle: Rearrange and Negate 题意:可以对整数数组进行两个操作,一是随意重新排列或保持不变,二是选择连续子段元素符号倒转,求可能最大的所有元素和…

nginx反向代理之缓存 客户端IP透传 负载均衡

一 缓存功能 缓存功能可以加速访问,如果没有缓存关闭后端服务器后,图片将无法访问,缓存功能默认关闭,需要开启。 相关选项: ​ proxy_cache zone_name | off; 默认off #指明调用的缓存,或关闭缓存机制;C…

opencv中两个LSD直线检测算法的区别与应用

opencv中两个LSD直线检测算法的区别与应用 同样是Line Segment Detector(lsd)算法,opencv中提供了两种实现,并且位于不同的模块。下面分别介绍它们的使用方法: 1. LineSegmentDetector 由于源码许可证问题 OpenCV 3.4.6-3.4.15、4.1.0-4.5.…

关于uniapp小程序的分包问题

开发uniapp小程序时,在打包上传代码时会出现超出2M的打包限制不能上传,那么我们该怎么做呢? 1.对于图片,将图片从后端服务取,尽量不要放在静态资源,图片体积会影响打包大小。 2.使用分包,tabb…

蓝桥杯_中断系统

一 中断 中断,即cpu暂停执行当前程序,转而执行另外一段特殊程序,处理结束后。返回之前暂停程序继续执行。 中断向量,中断服务程序的入口地址,每个中断源都对应一个固定的入口地址。 中断服务函数,内核响应中…

华为s5720s-28p-power-li-ac堆叠配置

叠物理约束: • 连线推荐示意图选用产品子系列中固定的一款设备做示例,与选择产品时指定型号的外观可能不同。示意图主要用于让用户了解相同子系列设备可以用作堆叠的端口的位置,以及使用不同的连线方式时如何连接设备上的端口。因此&#xf…

解决vscode内置视图npm脚本操作报权限问题

项目背景 当我们使用 vscode 运行NPM脚本时却爆红了,提示系统上禁止运行脚本。 解决思路 竟然提示权限不够,那么咱们就从系统权限出发,vscode右键以管理员身份运行 在集成终端中输入一下命令 # get-executionpolicy是PowerShell中的命令,用…

推荐5个python可视化库

你是否曾为数据可视化而烦恼? 在浩瀚的数据海洋中,如何将复杂的数据以直观、易懂的方式展现出来,成为了每个数据分析师和开发者必须面对的挑战。 幸运的是,我们有众多强大的可视化工具可以选择。 推荐5个Python可视化库&#x…

JS画摆线

最近看到一个很漂亮的曲线&#xff0c;研究了一下。 从圆心画一条线匀速转动&#xff0c;终点再画一条线转动&#xff0c;2条线转速不同&#xff0c;会画出很漂亮的花纹。 一个周期 完整周期 <html> <style> body { background:black; } p { text-align:center; c…

Spring中的事务和事务的传播机制

事务是一组操作的集合&#xff0c;不可以被分割。事务会把所有的操作作为一个整体&#xff0c;这组操作要么全部成功&#xff0c;要么全部失败。 事务有三种操作&#xff1a; 开启事务&#xff1b;提交事务&#xff1b;回滚事务。 如果代码的执行逻辑是这样&#xff1a; 开…

国际黄金价格是什么?和黄金价格有何区别?

黄金是世界上最珍贵的贵金属之一&#xff0c;其价值被无数人所垂涎。而国际黄金价格作为市场上的参考指标&#xff0c;直接影响着黄金交易的买卖。那么国际黄金价格到底是什么&#xff0c;与黄金价格又有何区别呢&#xff1f;本文将为您详细解答。 国际黄金价格是指以美元计量的…

【双碳】Acrel-1000DP分布式光伏并网及数据采集与控制的方式

摘要&#xff1a; 在“双碳”、整县分布式光伏等相关政策的目标背景下&#xff0c;分布式新能源广泛建设&#xff0c;对分布式新能 源规划的科学性提出更高的要求&#xff0c;有源配电网调度面临大规模分布式新能源参与后的运行管理问题&#xff0c;增 大了电网运行管理的风险和…

用友 NC 23处接口XML实体注入漏洞复现

0x01 产品简介 用友 NC 是用友网络科技股份有限公司开发的一款大型企业数字化平台。 0x02 漏洞概述 用友 NC 多处接口存在XML实体注入漏洞,未经身份验证攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等等,导致网站处于极度不安全…

图搜索基础-深度优先搜索

图搜索基础-深度优先搜索 参考原理引入流程解析手推例子 代码实现运行结果结果分析 参考 理论参考&#xff1a;深蓝学院 实现参考&#xff1a;github项目 原理 引入 对于这样一个图&#xff0c;我们试图找到S到G的通路&#xff1a; 计算机程序不会像人眼一样&#xff0c;一…

事件驱动的奇迹:深入理解Netty中的EventLoop

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 事件驱动的奇迹&#xff1a;深入理解Netty中的EventLoop 前言基础概念EventLoop的工作原理Channel与EventLoop的关系定时任务与延时任务EventLoop的生命周期EventLoop中的线程模型性能优化与最佳实践 …

前后端依赖下载上传

在某些情况下&#xff0c;可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖&#xff0c;你可以将它们保存在本地&#xff0c;然后在没有网络连接时使用&#xff0c;提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

前端架构: 脚手架之包管理工具的案例对比及workspace特性的基本使用

Npm WorkSpace 特性 1 &#xff09;使用或不使用包管理工具的对比 vue-cli 这个脚手架使用 Lerna 管理&#xff0c;它的项目显得非常清晰在 vue-cli 中包含很多 package 点开进去&#xff0c;每一个包都有package.json它里面有很多项目&#xff0c;再没有 Lerna 之前去维护和管…

sql | leecode 1147 |即时事务配送II | sql 优化

sql 有时候还是挺有意思的&#xff0c;有时候不只是crud 下面来看一道sql 题&#xff0c;第一个题解能跑完&#xff0c;但是超时 浮躁的人总是很难看的进去&#xff0c;有时候孤单又在所难免&#xff0c;所以啊 要继续坚持&#xff0c;原来中学老师讲的那句&#xff0c;要耐住寂…