软考架构案例之大数据架构

2023-12-13 15:36

本文主要是介绍软考架构案例之大数据架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • 大数据架构特点
    • Lambda架构
    • Kappa架构
    • Lambda架构与Kappa架构对比
    • 写在最后

前言

前不久参加了11月份的软考系统架构师,下午案例中还是有很多的架构相关的知识点,比如大数据架构和动静分离架构图等等。其中大数据架构的题目是填空Lambda和Kappa架构的架构图各个层次的组成部分,还有一个大数据架构的特点以及两种架构对比的维度,这个题目是案例第一题必选,分值25分。那么,今天就来解答一下这个题目并以大数据架构为主题分享一下官方软考大纲中的大数据架构。

大数据架构特点

1、鲁棒性和容错性
对于大规模分布式系统中,机器可能存在宕机,但系统需要健壮性,行为正确,即使遇到了机器错误。机器错误和人错误都是存在的,每天都难以避免。
2、低延迟读取和更新能力
有的需要毫秒的更新能力,有的允许几个小时的延迟更新,只要有低延迟需求,系统应该保证鲁棒性。
3、横向扩展
当负载增大的时候,通常可以通过增加机器数量来横向扩展。
4、通用性
要支持绝大多数应用程序,包括金融领域,社交领域和电子商务。
5、延展性
有新的需求出现时候,可以把新的功能加入到系统。
6、查询能力
用户可以按照自己的需求进行查询,可以产生更高的价值。
7、最少维护能力
系统在大多数时候保持平衡,减少系统的维护次数重要途径。
8、可调式性
系统在运行中,产生的每一个值,都是可追踪调试的。

Lambda架构

Lambda架构设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则。

Lambda 是用于同时处理离线和实时数据的,可容错的,可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。Lambda架构应用场景: 机器学习、物联网、流处理。
在这里插入图片描述

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

一般情况下批处理层采用Hadoop技术栈,加速层采用Spark技术栈,服务层则是由HBase进行数据存储,并由Hive创建可查询视图。
在这里插入图片描述

Kappa架构

Kappa架构在Lambda的基础上进行了优化,删除了Batch Laver 的架构,将数据道以消息队列进行替代。因此对于Kappa架构来说,依旧以流处理为主,但是数据却在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。
在这里插入图片描述

如图所示,输入数据直接由实时层的实时数据处理引擎对源源不断的源数据进行处理,再由服务层的服务后端进一步处理以提供上层的业务查询。而中间结果的数据都是需要存储的,这些数据包括历史数据与结果数据,统一存储在存储介质中。

在实际的开发场景中Kappa架构的实时层采用Fink技术栈,服务层当然还是HBase,另外有Hive创建查询视图。

Lambda架构与Kappa架构对比

根据两种架构对比分析

对比内容Lambda 架构Kappa 架构
复杂度与开发、维护成本需要维护两套系统(引擎),批处理层采用Hadoop,加速层采用Spark,复杂度高,开发、维护成本高只需要维护一套系统(引擎),实时层采用Flink,复杂度低,开发、维护成本低
计算开销需要一直运行批处理和伪实时计算,计算开销大必要时进行全量计算,计算开销相对较小
实时性满足实时性,属于伪实时,在加速层采用Spark只是粒度细了一些满足实时性
满足实时性批式全量处理,吞吐量大,历史数据处理能力强流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱

写在最后

软考大纲的大数据架构分为Lambda、Kappa两种架构,Lambda架构采用Hadoop、Spark实现批量处理数据,而Kappa架构则是采用Flink流式处理实现实时数据处理。在我们实际的开发实战场景中一般还是偏实时数据处理较多,比如广告平台、证券交易等等。

下一篇博客我们继续介绍软考架构案例之Redis一致性如何保证,敬请期待。

这篇关于软考架构案例之大数据架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488987

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模