系统架构设计师-第19章-大数据架构设计理论与实践-软考学习笔记

传统数据处理系统存在的问题

传统数据处理系统存在以下问题:

  1. 数据孤岛问题:不同部门或系统之间的数据隔离,数据无法共享和整合。

  2. 数据不一致性问题:由于数据维护分散,同一数据在不同系统或部门中可能存在不同的版本,造成数据不一致。

  3. 数据冗余问题:同一数据在不同系统或部门中存在多份副本,造成资源浪费和数据安全隐患。

  4. 数据安全问题:传统数据处理系统中的数据安全保护措施相对较弱,容易受到恶意攻击或数据泄露。

  5. 数据处理效率低下问题:传统数据处理系统中的数据处理方式和技术相对落后,处理效率低下,无法满足大数据时代的需求。

  6. 数据分析能力不足问题:传统数据处理系统中仅提供简单的数据处理和查询功能,无法进行高级的数据分析和挖掘,无法支持数据驱动的业务决策。

大数据处理系统架构分析

大数据处理系统架构主要包括以下几个方面:

  1. 数据采集层:数据采集是大数据系统中非常重要的一步。大数据处理系统可以通过数据传感器、日志、文件等多种方式采集数据。数据采集层需要考虑数据的格式、容量、采集周期等因素。

  2. 数据存储层:数据存储是大数据系统中非常重要的一部分。大数据处理系统可以使用多种存储方式,如HDFS、NoSQL数据库、关系型数据库等。数据存储层需要考虑数据的安全性、可扩展性、高可用性等因素。

  3. 数据处理层:数据处理是大数据系统中最复杂的一部分。大数据处理系统可以使用多种处理方式,如MapReduce、Spark、Flink等。数据处理层需要考虑数据处理的速度、可扩展性、容错性、计算能力等因素。

  4. 数据查询层:数据查询是大数据系统中非常重要的一部分。大数据处理系统可以使用多种查询方式,如Hive、Presto、Drill等。数据查询层需要考虑查询的效率、可扩展性、数据精确性等因素。

  5. 数据可视化与分析层:大数据处理系统可以使用多种数据可视化工具,如Tableau、Power BI等。数据可视化与分析层需要考虑用户体验、数据分析的精准性等因素。

综上所述,大数据处理系统架构需要根据实际需求和情况综合考虑以上因素,构建一个高效可靠的大数据处理系统。

大数据处理系统而临挑战

  1. 如何利用信息技术等手段处理非结构化和半结构化数据

  2. 如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模

  3. 数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响

大数据处理系统架构特征

1 . 鲁棒性和容错性( Robust and Fault-tolerant )

2.低延迟读取和更新能力( Low Latency Reads and Updates )

  1. 横向扩容( Scalable )

  2. 通用性( General )

  3. 延展性( Extensible )

6 . 即席查询能力( Allows Ad Hoc Queries )

7 . 最少维护能力( Minimal Maintenance )

  1. 可调试性( Debuggable )

Lambda 架构

Lambda架构对大数据处理系统的理解

Lambda 是用于同时处理离线和实时数据的,可容错的,可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。

Lambda架构应用场景

  1. 机器学习中的Lambda 架构

  2. 物联网的Lambda 架构

  3. 流处理和Lambda 架构挑战

Lambda架构介绍

Lambda 架构可分解为三层,即批处理层、加速层和服务层。

Batch Layer 有两个核心功能: 存储数据集和生成Batch View.

主数据集中的数据必须具有以下三个属性:

( 1 ) 数据是原始的.

( 2 ) 数据是不可变的.

(3 ) 数据永远是真实的.

( 1) Speed Layer 处理的数据是最近的增量数据流, Batch Layer 处理的全体数据集。

(2) Speed Layer 为了效率,接收到新数据时不断更新Realtime View,而Batch Layer 根据全体离线数据集直接得到Batch View 。

Lambda 架构将数据处理分解为Batch Layer 和Speed Layer 有如下优点:

· 容错性。

· 复杂性隔离。

· Scalable (横向扩容) :当数据量/负载增大时,可扩展性的系统通过增加更多的机器资源来维持性能。

Lambda架构的实现

Lambda架构优缺点

  1. 优点

(1)容错性好。Lambda 架构为大数据系统提供了更友好的容锚能力,一旦发生错误,我们可以修复算法或从头开始重新计算视图。

(2) 查询灵活度高。批处理层允许针对任何数据进行临时查询。

(3)易伸缩。所有的批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式的系统,我们可以通过增加新机器来轻松地扩大规模。

( 4 ) 易扩展。添加视图是容易的,只是给主数据集添加几个新的函数。

2 . 缺点

(1)全场景覆盖带来的编码开销。

(2) 针对具体场景重新离线训练一遍益处不大。

(3)重新部署和迁移成本很高。

Lambda与其他架构模式对比

事件溯源( Event Sourcing )与Lambda 架构

CQRS 与Lambda 架构

Kappa 架构

Kappa架构下对大数据处理系统的理解

数据的特性

数据的存储

Kappa架构介绍

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

从使用场景上来看, Kappa 架构与Lambda 相比,主要有两点区别:

( 1) Kappa 不是Lambda 的替代架构,而是其简化版本, Kappa 放弃f 对批处理的支持,更擅长业务本身为增量数据可入场景的分析需求,例如各种时序数据场景, 天然在在时间窗口的概念,流式计算直接满足其实时计算和历史补偿任务需求:

(2) Lambda 直接支持批处理,因此更适合对历史数据分析查询的场景,比如数据分析师需要按任意条件组合对历史数据进行探索性的分析,并且有一定的实时性;后求,期望尽快得到分析结果,批处理可以更1'[接高效地满足这些需求。

Kappa架构的实现

Kappa架构的优缺点

而Kappa 的缺点也很明显:

(1) 消息中间件缓存的数据量和回溯数据有性能瓶颈。

(2) 在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力, 很可能因为数据流先后顺序问题,导致数据丢失。

(3) Kappa 在抛弃了离线数据处理模块的时候,同时抛弃f 离线计算更加稳定可靠的特点。

常见Kappa架构变形

Kappa+ 架构
混合分析系统的Kappa 架构

Lambda 架构与Kappa 架构的对比和设计选择

Lambda架构与Kappa架构的特性对比

Lambda架构与Kappa架构的设计选择

根据两种架构对比分析,将业务需求、技术要求、系统复杂度、开发维护成本和历史数据处理能力作为选择考虑因素。

大数据架构设计案例分析

Lambda架构任某网奥运中的大数据应用

Lambda架构在某网广告平台的应用与演进

相关推荐
DolphinScheduler社区1 小时前
Apache DolphinScheduler + OceanBase,搭建分布式大数据调度平台的实践
大数据
时差9532 小时前
MapReduce 的 Shuffle 过程
大数据·mapreduce
努力变厉害的小超超2 小时前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
秃头佛爷2 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
kakwooi3 小时前
Hadoop---MapReduce(3)
大数据·hadoop·mapreduce
数新网络3 小时前
《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析
大数据·sql·spark
dayouziei4 小时前
java的类加载机制的学习
java·学习
ftswsfb6 小时前
【系统架构设计师(第2版)】七、系统架构设计基础知识
系统架构
aloha_7896 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
dsywws7 小时前
Linux学习笔记之vim入门
linux·笔记·学习