当前位置: 首页 > article >正文

软考:大数据架构设计

大数据总结

大数据处理系统的特征

1、鲁棒性和容错性
2、低延迟读取和更新能力
3、横向扩容
4、通用性
5、延展性
6、即席查询能力
7、最少维护能力
8、可调试性

Lambda架构

批处理层

存储数据集和生成Batch View
管理主数据集,原始的,不可变的,真实的

在大数据架构设计中,批处理层是Lambda架构的核心组成部分之一,其主要功能和特点如下:

  1. 存储管理主数据集:批处理层负责存储不可变的数据集预先批处理计算好的视图。这意味着它处理的是历史数据,确保数据的完整性和准确性

  2. 预先计算结果:批处理层使用分布式处理系统预先计算结果,通过处理所有的历史数据来实现数据的准确性。这通常涉及到大规模的数据集,需要强大的计算能力。

  3. 数据准确性:由于批处理层基于完整的数据集重新计算,它能够修复任何错误,并更新现有的数据视图。这保证了数据的准确性和可靠性。

  4. 输出存储:批处理层的输出通常存储在只读数据库中,更新则完全取代现有的预先计算好的视图。

  5. 使用技术:批处理层可以用Hadoop、Spark和Flink等框架进行计算。这些框架能够处理大规模数据集,并提供强大的数据处理能力。

  6. 与实时数据处理的结合:在Lambda架构中,批处理层与速度处理层(Speed Layer)相结合,以提供实时和历史数据的查询服务。速度层处理实时数据,而批处理层处理历史数据,两者的结合为用户提供了全面的数据视图。

  7. 数据冗余:虽然批处理层提供了数据的准确性,但也带来了数据冗余的问题,因为同样的数据可能在批处理层和速度层都被处理。

综上所述,批处理层在大数据架构中扮演着至关重要的角色,它通过处理历史数据来保证数据的完整性和准确性,同时与实时数据处理层相结合,为用户提供全面的数据分析服务。

加速层

建立索引,能快速查询,存储实时试图并处理传入的数据流,以便更新这些视图。
加速层相当于就是加速计算,只处理增量的数据集。

分层计算的特点:
1、容错性,就是在加速层可能出现的错误,可用在批处理层进行修正
2、复杂性隔离,将复杂的实时处理隔离出来,提高整个系统的鲁棒行和可靠性
3、横向扩容,支持线性可扩展

服务层

用来响应用户的查询请求。

具体实现

Hadoop用来存储主数据集
Spark构成加速层
Hbase作为服务层
Hive创建可查询的视图

Kappa架构

数据系统=数据+查询
数据的特性:When,What,也就是记录数据的版本
数据的存储:Lambda,数据是不可变的,不可变只需要在后面追加数据即可,

采用了重新处理事件的原则,有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据

删除了Batch Layer的架构。数据通道已消息队列进行替代。

lambda和kappa架构的对比

Lambda架构和Kappa架构是两种不同的大数据架构,它们各自有不同的特点和适用场景。以下是它们的对比:

  1. 架构复杂性与维护

    • Lambda架构:包含批处理层和速度层,需要维护两套系统,这可能导致维护和管理上的复杂性增加。
    • Kappa架构:通过消除批处理层,简化了架构,减少了维护的复杂性。
  2. 实时性与历史数据处理

    • Lambda架构:适合需要历史数据分析的场景,通过批处理层可以处理历史数据。
    • Kappa架构:更侧重于实时数据处理,适合对实时性要求极高的应用。
  3. 容错性与一致性

    • Lambda架构:批处理层提供了强大的容错性和数据一致性保证,适合对数据准确性要求极高的场景。
    • Kappa架构:依赖于流处理层的容错机制,可能在某些场景下需要额外的措施来确保数据一致性。
  4. 技术适应性

    • Lambda架构:由于其成熟的技术生态,可能更容易找到经验丰富的技术人员。
    • Kappa架构:可能需要团队适应新的流处理技术。
  5. 数据冗余与存储成本

    • Lambda架构:为实现不可变的数据需要存储原始数据,数据的不断追加会带来很大的存储成本。
    • Kappa架构:通过重新处理历史数据改进逻辑算法,可以减少数据冗余和存储成本。
  6. 开发和维护成本

    • Lambda架构:批处理层和速度层采用两套不同的技术方案,开发和维护成本都比较大。
    • Kappa架构:只需要维护实时处理模块,可以降低开发和维护成本。
  7. 适用场景

    • Lambda架构:因其优秀的稳定性和容错性,仍被应用在众多场景中,适合需要稳健机器学习模型的场景。
    • Kappa架构:适用于需要高实时性和灵活性的业务逻辑。

总的来说,Lambda架构适合需要同时处理实时和历史数据的场景,而Kappa架构则更适合对实时性要求高、历史数据处理需求相对较低的场景。选择哪种架构取决于具体的业务需求、数据处理的特点以及团队的技术能力。


http://www.kler.cn/a/376717.html

相关文章:

  • 基于语音信号的说话人识别
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-11
  • brew 下载过慢, 切换使用国内源
  • Calling short variants with GATK4
  • Linux高阶——1027—守护进程
  • vue3项目中el-tooltip实现内容溢出时再显示,并设置tip的最大宽度
  • 【多态】析构函数的重写
  • 七、MapReduce 编程模型:原理、流程与应用场景
  • 数据结构+算法分析与设计[22-24年真题版]
  • Apache Dubbo (RPC框架)
  • 计算机毕业设计Hadoop+大模型旅游推荐系统 旅游景点推荐 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计
  • 算法深度剖析:前缀和
  • 二、Go快速入门之数据类型
  • 【Kaggle | Pandas】练习6:重命名和组合
  • STM32G4 双ADC模式之常规同步模式独立注入模式
  • 《使用Gin框架构建分布式应用》阅读笔记:p307-p392
  • 淘宝商品描述,一键“爬”回家 —— Java爬虫的奇妙冒险
  • [论文阅读]Generalizable Humanoid Manipulation with Improved 3D Diffusion Policies
  • C#调用webService接口
  • Java日志脱敏——基于logback MessageConverter实现
  • mac|安装redis及RedisDesk可视化软件
  • Threejs 实现 VR 看房完结
  • Chromium 在WebContents中添加自定义数据c++
  • 中间件的应用
  • 精准医疗沟通新体验:开源语音识别(ASR)如何提升医生与患者对话
  • ssm038汽车养护管理系统+jsp(论文+源码)_kaic