【软考速通笔记】系统架构设计师⑱——大数据架构设计理论与实践

文章目录

  • 一、前言
  • 二、传统数据库遇到的问题
    • [2.1 问题的根源](#2.1 问题的根源)
    • [2.2 传统解决方法](#2.2 传统解决方法)
  • 三、大数据基础
    • [3.1 大数据处理技术](#3.1 大数据处理技术)
    • [3.2 大数据利用过程](#3.2 大数据利用过程)
    • [3.3 大数据处理系统面临的挑战](#3.3 大数据处理系统面临的挑战)
    • [3.4 大数据具有的属性和特征](#3.4 大数据具有的属性和特征)
  • 四、Lanbda架构
    • [4.1 批处理层](#4.1 批处理层)
    • [4.2 加速层](#4.2 加速层)
    • [4.3 服务层](#4.3 服务层)
  • 五、Kappa架构
    • [5.1 实时层](#5.1 实时层)
    • [5.2 服务层](#5.2 服务层)
  • 六、Lambda和Kappa对比

一、前言

笔记目录大纲请查阅:【软考速通笔记】系统架构设计师------导读

二、传统数据库遇到的问题

2.1 问题的根源

  • 用户访问量增加:随着业务的扩展,用户数量激增导致并发请求增多。
  • 数据量增长:业务数据的累积导致数据库存储压力增大。
  • 性能瓶颈:数据库读写操作因数据量增加而响应时间延长,甚至超时。

2.2 传统解决方法

  • 异步处理:引入消息队列等机制,减轻数据库即时处理压力。
  • 数据库分区:通过Key分区或范围分区,分散数据存储和访问压力。
  • 分片技术:数据库分片或重新分片,提高数据管理的灵活性和查询效率。
  • 读写分离:将读操作和写操作分离,提高数据库的并发处理能力。
  • 分库分表:通过物理或逻辑的方式,将数据分散存储,提升性能。

三、大数据基础

3.1 大数据处理技术

  • 分布式文件系统:如Hadoop,提供高吞吐量的数据访问。
  • 数据处理框架:Map/Reduce和Spark,用于大规模数据集的并行处理。
  • 消息队列:如Kafka,配合Avro等二进制格式,实现高效的数据传输。

3.2 大数据利用过程

  • 采集:从多个数据源收集数据。
  • 清洗:去除无效或错误的数据。
  • 统计:对数据进行汇总和分析。
  • 挖掘:使用机器学习等技术发现数据中的模式和趋势。

3.3 大数据处理系统面临的挑战

  • 非结构化数据处理:如何处理和分析非结构化和半结构化数据。
  • 复杂性与不确定性:探索大数据的特征描述和系统建模方法。
  • 数据异构性:数据异构性对知识发现和管理决策的影响

3.4 大数据具有的属性和特征

  • 鲁棒性和容错性:系统能够处理部分节点故障。
  • 低延迟:快速响应查询请求。
  • 横向扩展:通过增加节点而非增强单个机器性能来扩展系统。
  • 通用性:适用于多种类型的数据处理任务。
  • 可扩展性:系统能够灵活扩展以适应数据量的增长。
  • 即席查询:用户可以根据自己的需求进行查询。
  • 维护简便:系统设计简单,易于维护。
  • 可调试:系统可以根据需要调整性能和资源分配。

四、Lanbda架构

Lanbda架构是一种用于同时处理离线和实时数据的、可容错的、可扩展的分布式系统。

  • 优点:容错性好,查询灵活度高,弹性伸缩,易于扩展。
  • 缺点:编码量大,持续处理成本高,重新部署和迁移成本高。

4.1 批处理层

  • 数据存储:使用Hadoop HDFS或HBase存储主数据集,保证数据的原始性和不可变性。
  • 数据处理:使用Spark或MapReduce周期性地处理增量数据并存储到主数据集。
  • 批视图生成:使用MapReduce用于生成批处理视图。

4.2 加速层

  • 实时数据处理:使用Hadoop HDFS或HBase处理和存储增量实时数据。
  • 实时视图实现:使用Spark或Storm进行实时数据处理和视图。

4.3 服务层

  • 请求响应:合并批视图和实时视图的结果数据集,提供最终数据集。
  • 数据存储:使用Hbase或Cassandra作为服务层存储。
  • 查询视图:使用Hive创建可查询的视图

五、Kappa架构

Kappa架构是在Lambda架构的基础上进行了优化,删除了Batch Layer的架构,将数据通道以消息队列进行替代。

  • 优点:简化了Lambda架构中的加速层,统一了离线和实时处理代码,便于维护。
  • 缺点:可能存在性能瓶颈,数据关联处理开销大,牺牲了离线计算的可靠性。

5.1 实时层

  • 流式处理:采用流式处理引擎逐条处理输入数据,生成实时视图。
  • 数据回访:使用Kafka等消息队列回访数据,使用Flink或Spark Streaming进行处理。

5.2 服务层

  • 数据湖:Kappa架构倾向于将所有原始数据存储在数据湖中,以供后续分析和处理。这有助于保留所有历史数据,并支持未来的查询和分析需求。可以使用分布式存储系统(如 Apache Hadoop HDFS)

六、Lambda和Kappa对比

对比内容 Lambda Kappa
复杂度 维护两套系统(引擎),复杂度高,成本高 维护一套系统(引擎),复杂度低,成本低
计算开销 周期性批处理计算,维持实时计算,计算开销大 必要时进行全量计算,计算开销相对较小
实时性 满足实时性 满足实时性
历史数据处理能力 批式全量处理,吞吐量大,历史数据处理能力强。 流式全量处理,吞吐量相对较低,历史数据处理能力相对较低
技术依赖 依赖Hadoop、Spark、Storm技术 依赖Flink计算引擎、流式计算

若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。

相关推荐
一味做笔记17 分钟前
C语言学习笔记(抱佛脚版)
笔记·学习
qq_5895681021 分钟前
java学习笔记——多线程
java·笔记·学习·intellij-idea
Warolitbos22 分钟前
Redis学习笔记
redis·笔记·学习
V---scwantop---信1 小时前
复古卡通纹理噪点印刷打印照片效果PS特效样机 Texturizer Original Design Effect
笔记
郭涤生1 小时前
第二章:影响优化的计算机行为_《C++性能优化指南》notes
开发语言·c++·笔记·性能优化
吴梓穆3 小时前
UE4学习笔记 FPS游戏制作32 主菜单,暂停游戏,显示鼠标指针
笔记·学习·ue4
m0_678693333 小时前
深度学习笔记19-YOLOv5-C3模块实现(Pytorch)
笔记·深度学习·yolo
汪超3 小时前
Transformers快速入门-学习笔记(二)
笔记·学习·自然语言处理
office大师姐3 小时前
迈向云数据领域的第一步:Microsoft Azure DP-900认证指南
大数据·windows·microsoft·微软·azure
MXsoft6184 小时前
监控易一体化运维:监控易机房管理,打造高效智能机房
大数据·数据库