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

文章目录

  • 一、前言
  • 二、传统数据库遇到的问题
    • [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计算引擎、流式计算

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

相关推荐
0509155 分钟前
测试基础笔记第七天
linux·服务器·笔记
极小狐22 分钟前
极狐GitLab 项目 API 的速率限制如何设置?
大数据·运维·git·elasticsearch·gitlab
IT成长日记29 分钟前
【HDFS】HDFS数据迁移与备份全攻略:从日常备份到灾难恢复
大数据·hadoop·hdfs·数据迁移与备份
萨达大33 分钟前
软考高级-系统架构设计师 论文范文参考(一)
系统架构·论文·软考高级·soa·系统架构设计师·构件
云达闲人42 分钟前
系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)案例分析与简答题、详细解析与评分要点
运维·系统架构·软考·系统架构设计师
残月只会敲键盘1 小时前
Git 命令速查手册
大数据·git·elasticsearch
凉白开3381 小时前
Spark-SQL核心编程
大数据·sql·spark
慵懒学者2 小时前
JavaWeb 1.HTML+CSS (黑马JavaWeb课程笔记)
css·笔记·html
夏季疯3 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.3.23)
java·笔记·学习
lalajh4 小时前
论软件系统架构风格
系统架构