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

文章目录

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

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

相关推荐
柳鲲鹏7 小时前
jiangdg/AndroidCamera关闭摄像头流程
笔记
warrah8 小时前
k8s迁移——岁月云实战笔记
笔记·容器·kubernetes
ssxueyi9 小时前
如何查看flink错误信息
大数据·flink
岳不谢10 小时前
华为DHCP高级配置学习笔记
网络·笔记·网络协议·学习·华为
奥顺11 小时前
PHP与AJAX:实现动态网页的完美结合
大数据·mysql·开源·php
19999er12 小时前
CDN信息收集(小迪网络安全笔记~
服务器·网络·笔记·安全·web安全
红色的山茶花12 小时前
YOLOv9-0.1部分代码阅读笔记-dataloaders.py
笔记·深度学习·yolo
UQI-LIUWJ12 小时前
datasets 笔记:加载数据集(基本操作)
笔记
七灵微13 小时前
进程与线程以及如何查看
linux·系统架构