软考:大数据架构设计
大数据总结
大数据处理系统的特征
1、鲁棒性和容错性
2、低延迟读取和更新能力
3、横向扩容
4、通用性
5、延展性
6、即席查询能力
7、最少维护能力
8、可调试性
Lambda架构
批处理层
存储数据集和生成Batch View
管理主数据集,原始的,不可变的,真实的
在大数据架构设计中,批处理层是Lambda架构的核心组成部分之一,其主要功能和特点如下:
-
存储管理主数据集:批处理层负责存储
不可变的数据集和预先批处理计算好的视图。这意味着它处理的是历史数据,确保数据的完整性和准确性。 -
预先计算结果:批处理层使用分布式处理系统
预先计算结果,通过处理所有的历史数据来实现数据的准确性。这通常涉及到大规模的数据集,需要强大的计算能力。 -
数据准确性:由于批处理层基于完整的数据集重新计算,它能够修复任何错误,并更新现有的数据视图。这保证了数据的准确性和可靠性。
-
输出存储:批处理层的
输出通常存储在只读数据库中,更新则完全取代现有的预先计算好的视图。 -
使用技术:批处理层可以用Hadoop、Spark和Flink等框架进行计算。这些框架能够处理大规模数据集,并提供强大的数据处理能力。
-
与实时数据处理的结合:在Lambda架构中,批处理层与速度处理层(Speed Layer)相结合,以提供实时和历史数据的查询服务。速度层处理实时数据,而批处理层处理历史数据,两者的结合为用户提供了全面的数据视图。
-
数据冗余:虽然批处理层提供了数据的准确性,但也带来了数据冗余的问题,因为同样的数据可能在批处理层和速度层都被处理。
综上所述,批处理层在大数据架构中扮演着至关重要的角色,它通过处理历史数据来保证数据的完整性和准确性,同时与实时数据处理层相结合,为用户提供全面的数据分析服务。
加速层
建立索引,能快速查询,存储实时试图并处理传入的数据流,以便更新这些视图。
加速层相当于就是加速计算,只处理增量的数据集。
分层计算的特点:
1、容错性,就是在加速层可能出现的错误,可用在批处理层进行修正
2、复杂性隔离,将复杂的实时处理隔离出来,提高整个系统的鲁棒行和可靠性
3、横向扩容,支持线性可扩展
服务层
用来响应用户的查询请求。
具体实现
Hadoop用来存储主数据集
Spark构成加速层
Hbase作为服务层
Hive创建可查询的视图
Kappa架构
数据系统=数据+查询
数据的特性:When,What,也就是记录数据的版本
数据的存储:Lambda,数据是不可变的,不可变只需要在后面追加数据即可,
采用了重新处理事件的原则,有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据
删除了Batch Layer的架构。数据通道已消息队列进行替代。
lambda和kappa架构的对比
Lambda架构和Kappa架构是两种不同的大数据架构,它们各自有不同的特点和适用场景。以下是它们的对比:
-
架构复杂性与维护:
- Lambda架构:包含批处理层和速度层,需要维护两套系统,这可能导致维护和管理上的复杂性增加。
- Kappa架构:通过消除批处理层,简化了架构,减少了维护的复杂性。
-
实时性与历史数据处理:
- Lambda架构:适合需要历史数据分析的场景,通过批处理层可以处理历史数据。
- Kappa架构:更侧重于实时数据处理,适合对实时性要求极高的应用。
-
容错性与一致性:
- Lambda架构:批处理层提供了强大的容错性和数据一致性保证,适合对数据准确性要求极高的场景。
- Kappa架构:依赖于流处理层的容错机制,可能在某些场景下需要额外的措施来确保数据一致性。
-
技术适应性:
- Lambda架构:由于其成熟的技术生态,可能更容易找到经验丰富的技术人员。
- Kappa架构:可能需要团队适应新的流处理技术。
-
数据冗余与存储成本:
- Lambda架构:为实现不可变的数据需要存储原始数据,数据的不断追加会带来很大的存储成本。
- Kappa架构:通过重新处理历史数据改进逻辑算法,可以减少数据冗余和存储成本。
-
开发和维护成本:
- Lambda架构:批处理层和速度层采用两套不同的技术方案,开发和维护成本都比较大。
- Kappa架构:只需要维护实时处理模块,可以降低开发和维护成本。
-
适用场景:
- Lambda架构:因其优秀的稳定性和容错性,仍被应用在众多场景中,适合需要稳健机器学习模型的场景。
- Kappa架构:适用于需要高实时性和灵活性的业务逻辑。
总的来说,Lambda架构适合需要同时处理实时和历史数据的场景,而Kappa架构则更适合对实时性要求高、历史数据处理需求相对较低的场景。选择哪种架构取决于具体的业务需求、数据处理的特点以及团队的技术能力。
相关文章:
软考:大数据架构设计
大数据总结 大数据处理系统的特征 1、鲁棒性和容错性 2、低延迟读取和更新能力 3、横向扩容 4、通用性 5、延展性 6、即席查询能力 7、最少维护能力 8、可调试性 Lambda架构 批处理层 存储数据集和生成Batch View 管理主数据集,原始的,不可变的&…...
token无感刷新+处理并发的后端方案
问题描述: 当用户通过登陆后进入一个web网站,会把token保存到localStorage。假设token过期时间30min。 那么当用户在网站快乐地玩耍了30min后,这时进行了一次提交表单,它会被重定向到登陆页面。 作为用户:我表单填了…...
【系统设计】让 Java “动起来”:动态语言与静态语言的比较及 DSL 实现
在编程语言的世界里,语言的特性决定了它们在不同场景下的适用性。动态语言和静态语言是两种常见的编程范式,它们的差异不仅影响开发者的使用习惯,还决定了它们在某些应用场景中的表现。在这篇博文中,我们将通过Python和Java这两种…...
TCP Analysis Flags 之 TCP Keep-Alive
前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…...
mfc140u.dll丢失怎么办? mfc140u.dll文件缺失的修复技巧
mfc140u.dll 是 Microsoft Foundation Classes (MFC) 库的一部分,它是 Visual Studio 2015 的组件之一,主要服务于使用 C 编写的 Windows 应用程序。这个动态链接库文件包含了 MFC 14.0 Unicode 版本的实现代码,为应用程序提供运行时支持。当…...
Spring Security使用
文章目录 Spring Security的起点FilterChain重写重写登录验证逻辑增加CSRF Token增加方法权限校验 Spring Security的起点 在AbstractApplicationContext.refresh()方法时,子类ServletWebServerApplicationContext会创建一个ServletContextInitializerBeans这个Bea…...
CSS网页布局综合练习(涵盖大多CSS知识点)
该综合练习就是为这个学校静态网页设置CSS样式,使其变成下面的模样 其基本骨架代码为: <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content…...
解决 Hardhat Verify 超时
问题背景 今天在学习使用Hardhat进行verify 合约 到 Ethscan的时候,出现了如下报错 fafafafadeMacBook-Air Web3_Solidity_Study % npx hardhat verify --network sepolia XXXXXXXXXXXXXXXXXXXXXXXX "10" Successfully verifie…...
ACIS创建各种基本体,举例说明
ACIS(Advanced CAD Interoperability System)是一个广泛使用的三维几何建模内核,它支持创建和操作各种基本的三维几何体。虽然ACIS没有专门的函数来直接创建某些特定的基本体(如椭球体),但可以通过一系列变…...
[CISCN 2019华北]PWN1-好久不见7
Partial RELRO 表示部分 RELRO 保护已启用。在这种情况下,只有某些部分(如 GOT 中的只读部分)是只读的。 NX enabled 表示这个二进制文件启用了 NX 保护,数据段是不可执行的。这可以防止某些类型的代码注入攻击。 这里是ida识别…...
代码随想录day16| 513找树左下角的值 、 路径总和 、 从中序与后序遍历序列构造二叉树
代码随想录day16| 找树左下角的值 、 路径总和 、 从中序与后序遍历序列构造二叉树 513找树左下角的值层序遍历法递归法 路径总和112. 路径总和113. 路径总和 II 从中序与后序遍历序列构造二叉树思路 513找树左下角的值 层序遍历法 使用层序遍历,找到最后一层最左边…...
使用 MMDetection 实现 Pascal VOC 数据集的目标检测项目练习(二) ubuntu的下载安装
首先,Linux系统是人工智能和深度学习首选系统。原因如下: 开放性和自由度:Linux 是一个开源操作系统,允许开发者自由修改和分发代码。这在开发和研究阶段非常有用,因为开发者可以轻松地访问和修改底层代码。社区支持:…...
书生大模型实战营(第四期)——入门岛
第 1 关 Linux 前置基础 闯关任务完成SSH连接与端口映射并运行hello_world.py10min可选任务 1将Linux基础命令在开发机上完成一遍10min可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min 完成SSH连接 创建python文件 建环境 运行 第 2 关 Python 前置基础 Leet…...
压强随着时间的变化
import numpy as np import matplotlib.pyplot as plt# 参数设置 L 50 # 长度 (m) D 4 # 直径 (m) d 0.01 # 洞的直径 (m) P0 101300 # 初始压力 (Pa) P_final 0.3 * P0 # 最终压力 (Pa) R 287 # 理想气体常数 (J/(kgK)) T 20 273.15 # 温度 (K) M 0.029 # 空…...
2024年大厂AI大模型面试题精选与答案解析
前言 随着AI市场,人工智能的爆火,在接下来的金九银十招聘高峰期,各大科技巨头和国有企业将会对AGI人才的争夺展开一场大战,为求职市场注入了新的活力。 为了助力求职者在面试中展现最佳状态,深入理解行业巨头的选拔标…...
Linux开发讲课47--- 详解 Linux 中的虚拟文件系统
虚拟文件系统是一种神奇的抽象,它使得 “一切皆文件” 哲学在 Linux 中成为了可能。 什么是文件系统?根据早期的 Linux 贡献者和作家 Robert Love 所说,“文件系统是一个遵循特定结构的数据的分层存储。” 不过,这种描述也同样适用…...
全球银行常用英语
Earn OCBC$ or 90 Miles or VOYAGE Miles today! Get the most out of your OCBC Card with OCBC Privileges. 今天赚取华侨银行美元或 90 英里或航程英里!通过华侨银行特权充分利用您的华侨银行卡。 Check out the rewards catalogue. Apply for a OCBC Credit Car…...
新160个crackme -090-tc.12
运行分析 需要破解注册码 PE分析 Delphi程序,32位,无壳 静态分析&动态调试 ida搜不到字符串,根据Deiphi程序的结构,直接打开来到start函数,找到CreateForm函数的参数off_445FC4,双击 逐个查找偏移&…...
Swagger文档-Unable to scan documentation context default报错
文章目录 报错情况: Unable to scan documentation context 管理端接口发生情况一:发生情况三: 报错情况: Unable to scan documentation context 管理端接口 报错日志: 2024-11-03 12:40:27.427 ERROR 3340 --- [ …...
SpringKafka生产者、消费者消息拦截
1 前言 在Spring Kafka中,可以通过配置拦截器来实现对生产者和消费者消息的拦截。拦截器可以用来记录日志、修改消息等等。 2 基于Kafka管理的拦截器 Kafka原生提供的拦截器接口是org.apache.kafka.clients.producer.ProducerInterceptor和 org.apache.kafka.cli…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
