大数据架构设计

本博客地址:https://security.blog.csdn.net/article/details/136657478

一. 基本概念

1、解决传统数据架构无法及时响应用户请求的常用解决方法:
增加异步处理队列,通过工作处理层批量处理异步处理队列中的数据修改请求。
建立数据库水平分区,通常建立 Key 分区,以主键/唯一键 Hash 值作为 Key。
建立数据库分片或重新分片,通常专门编写脚本来自动完成,且要进行充分测试。
引入读写分离技术,主数据库处理写请求,通过复制机制分发至从数据库。
引入分库分表技术,按照业务上下文边界拆分数据组织结构,拆分单数据库压力。

2、大数据处理技术主要分为以下几种:
● 基于分布式文件系统 Hadoop。
● 使用 Map/Reduce 或 Spark 数据处理技术。
● 使用 Kafka 数据传输消息队列及 Avro 二进制格式。

3、大数据的利用过程分为:采集清洗统计挖掘 4 个过程。

4、大数据处理系统面临的挑战主要有:
● 如何利用信息技术等手段处理非结构化和半结构化数据。
● 如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模。
● 数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响。

5、大数据处理系统应具有的属性和特征包括:鲁棒性和容错性低延迟横向扩展(通过增强机器性能扩展)通用可扩展即席查询(用户按照自己的要求进行查询)最少维护和可调试

二. 大数据架构之Lambda架构

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

2、Lambda 架构分为以下 3 层:批处理层加速层服务层

3、批处理层。该层核心功能是存储主数据集,主数据集数据具有原始、不可变、真实的特征。批处理层周期性地将增量数据转储至主数据集,并在主数据集上执行批处理,生成批视图。架构实现方面可以使用 Hadoop HDFS 或 HBase 存储主数据集,再利用 Spark 或 MapReduce 执行周期批处理,之后使用 MapReduce 创建批视图。

4、加速层。该层的核心功能是处理增量实时数据,生成实时视图,快速执行即席查询。架构实现方面可以使用 Hadoop HDFS 或 HBase 存储实时数据,利用 Spark 或 Storm 实现实时数据处理和实时视图。

5、服务层。该层的核心功能是响应用户请求,合并批视图和实时视图中的结果数据集得到最终数据集。具体来说就是接收用户请求,通过索引加速访问批视图,直接访问实时视图,然后合并两个视图的结果数据集生成最终数据集,响应用户请求。架构实现方面可以使用 HBase 或Cassandra 作为服务层,通过 Hive 创建可查询的视图。

6、Lambda 架构优缺点
● Lambda 架构的优点:容错性好查询灵活度高弹性伸缩易于扩展
● Lambda 架构的缺点:编码量大持续处理成本高重新部署和迁移成本高

7、与 Lambda 架构相似的模式有事件溯源模式命令查询职责分离模式

三. Kappa 架构

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

2、Kappa 架构分为如下 2 层:实时层服务层

3、实时层。该层核心功能是处理输入数据生成实时视图。具体来说是采用流式处理引擎逐条处理输入数据,生成实时视图。架构实现方式是采用 Apache Kafka 回访数据,然后采用 Flink或 Spark Streaming 进行处理。

4、服务层。该层核心功能是使用实时视图中的结果数据集响应用户请求。实践中使用数据湖中的存储作为服务层。

5、Kappa 架构本质上是通过改进 Lambda 架构中的加速层,使它既能够进行实时数据处理,同时也有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据。

6、Kappa 架构的优点是将离线和实时处理代码进行了统一,方便维护。缺点是消息中间件有性能瓶颈、数据关联时处理开销大、抛弃了离线计算的可靠性

四. Lambda 架构与 Kappa 架构的对比

1、两种架构特性对比:

对比内容Lambda 架构Kappa 架构
复杂度与开发维护成本维护两套系统(引擎),复杂度高,成本高维护一套系统(引擎)复杂度低,成本低
计算开销周期性批处理计算,持续实时计算
计算开销大
必要时进行全量计算
计算开销相对较小
实时性满足实时性满足实时性
历史数据处理能力批式全量处理,吞吐量大
历史数据处理能力强
批视图与实时视图存在冲突可能
流式全量处理,吞吐量相对较低
历史数据处理能力相对较弱

2、对于两种架构设计的选择可以从以下 4 个方面考虑:

设计考虑Lambda 架构Kappa 架构
业务需求与技术要求依赖 Hadoop、Spark、Storm 技术依赖 Flink 计算引擎,偏流式计算
复杂度实时处理和离线处理结果可能不一致频繁修改算法模型参数
开发维护成本成本预算充足成本预算有限
历史数据处理能力频繁使用海量历史数据仅使用小规模数据集

五. 大规模视频网络大数据架构

1、架构图如下:

在这里插入图片描述

2、对于图中的数据计算层可以分为离线计算实时计算合并计算 3 个部分。

3、离线计算部分:用于存储持续增长的批量离线数据,并且会周期性地使用 Spark 和Map/Reduce 进行批处理,将批处理结果更新到批视图之后使用 Impala 或者 Hive 建立数据仓库,将结果写入 HDFS 中。

4、实时计算部分:采用 Spark Streaming,只处理实时增量数据,将处理后的结果更新到实时视图。

5、合并计算部分:合并批视图和实时视图中的结果,生成最终数据集,将最终数据集写入HBase 数据库中用于响应用户的查询请求。

六. 广告平台大数据架构

1、架构图如下:

在这里插入图片描述

2、以上基于 Lambda 架构的广告平台,分为批处理层(Batch Layer)加速层(Speed Layer)服务层(Serving Layer)

3、批处理层:每天凌晨将 Kafka 中浏览、下单等消息同步到 HDFS 中,将 HDFS 中数据解析为 Hive 表,然后使用 HQL 或 Spark SQL 计算分区统计结果 Hive 表,将 Hive 表转储到 MySQL中作为批视图。

4、加速层:使用 Spark Streaming 实时监听 Kafka 下单、付款等消息,计算每个追踪链接维度的实时数据,将实时计算结果存储在 Redis 中作为实时视图。

5、服务层:采用 Java Web 服务,对外提供 HTTP 接口,Java Web 服务读取 MySQL 批视图表和 Redis 实时视图表。

七. 智能决策平台大数据架构

1、架构图如下:

在这里插入图片描述

2、以上智能决策大数据系统是一个基于 Kappa 架构的实时日志分析平台。

3、具体的实时处理过程如下:
日志采集:用统一的数据处理引擎 Filebeat 实时采集日志并推送给 Kafka 缓存。
日志清洗解析:利用基于大数据计算集群的 Flink 计算框架实时读取 Kafka 消息并进行清洗,解析日志文本转换成指标。
日志存储:日志转储到 ElasticSearch 日志库,指标转储到 OpenTSDB 指标库。
日志监控:单独设置告警消息队列,保持监控消息时序管理和实时推送。

八. 电商决策平台大数据架构

1、架构图如下:

在这里插入图片描述

2、该平台基于 Kappa 架构,使用统一的数据处理引擎 Funk 可实时处理流数据,并将其存储到数据仓库工具 Hive 与分布式缓存 Tair 中,以供后续决策服务的使用。

3、实时处理的过程如下:
数据采集:B 端实时采集用户点击、下单、广告曝光、出价等数据然后推送给 Kafka缓存。
数据清洗聚合:由 Flink 实时读取 Kafka 消息,按需过滤参与业务需求的指标,将聚合时间段的数据转换成指标。
数据存储:Flink 将计算结果转储至 Hive 日志库,将模型需要的参数转储至实时计算数据库 Tair 缓存,然后后续决策服务从 Tair 中获取数据进行模型训练。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进入docker容器中安装软件失败解,国外源慢,时间不同步,执行命令权限不够等问题解决办法

进入docker容器中安装软件失败解,时间不同步, 国外源慢,执行命令权限不够 等问题解决办法 首先我进入docker容器中,为了安装一个软件,引出了很多报错问题,报错如下: 1、无法用 ifconfig 或者 ip addr 的方…

kubernetes实战(1)之虚拟机centos搭建k8s集群

一,环境准备 centos7系统,每个系统2c2g,40g,centos7下载地址:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 # 每个节点分别设置对应主机名 hostnamectl set-hostname master hostnamectl set-hostname …

【解读】NIST网络安全框架CSF 2.0

2014年,NIST(美国国家标准与技术研究所,类似于中国的工信部)首次发布了网络安全框架CSF(Cybersecurity Framework),十年后,在2024年2月26日发布了重大更新(CSF 2.0)&…

MATLAB中的符号计算是什么?如何使用它?

一、符号计算概述 符号计算,顾名思义,是一种基于符号而非数值的计算方式。在MATLAB中,符号计算是通过符号表达式来实现的,这些表达式由符号变量、符号运算符和括号等组成。符号变量可以是任何字母或单词,它们代表数学…

第100+2步 ChatGPT文献复现:ARIMAX预测肺结核 vol. 2

基于WIN10的64位系统演示 一、写在前面 各位大佬,不知大家是否把结果一复现出来了呢? 我们继续往下看,首先复习一下: 《PLoS One》杂志的2023年一篇题目为《A comparative study of three models to analyze the impact of ai…

Java进阶-主流框架总结与详解

一、Java框架概述 Java开发领域涵盖了众多框架,这些框架提供了丰富的功能和工具,帮助开发人员更高效地构建应用程序。其中,Spring框架是最为广泛应用的之一,它提供了全方位的解决方案,包括依赖注入、面向切面编程等&a…

HCIP —— 交换 (VLAN)

VLAN --- 虚拟局域网 在 HCIA 中 ,已经学过交换机的一些基础配置,下面进行回顾一些简单的内容。 1.创建VLAN VLAN ID --- 区别和标识不同的VLAN 使用范围:0-4095 , 由12位二进制构成。 0 和 4095 作为 保留的VLAN。 …

【R语言基础操作】

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

simulink汽车动力特性模型

1、内容简介 略 76-可以交流、咨询、答疑 simulink汽车动力特性模型 节气门、Gasoline Engine、离合器、作动器 2、内容说明 略 齿轮半径1 0.06; 齿轮半径2 0.072; 有效齿轮半径 2/3*(radius2^3 - radius1^3)/(radius2^2 - radius1^2); 输入传动比 2.1; 输出传动比 1…

洛谷——查单词+简单题+火车线路 +无聊的数列+最大数——线段树

一、 线段树 P2412 查单词 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2412 解析&#xff1a; 板子题&#xff0c;区间搜索&#xff0c;不需要区间修改 #include <bits/stdc.h> using namespace std; #define endl \n #define i…

【PHP + 代码审计】函数详解2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

python内置函数 D

python内置函数 D Python 解释器内置了很多函数和类型&#xff0c;任何时候都能使用。 D 名称描述delattr删除对象的属性。dict创建字典对象。dir列出对象的属性。divmod同时执行除法运算和取模运算&#xff0c;返回一个包含商和余数的元组。 delattr(object, name) delat…

HTML5实现一笔画游戏

HTML5实现一笔画游戏 一笔画问题 一笔画是图论科普中一个著名的问题&#xff0c;它起源于柯尼斯堡七桥问题科普。当时的东普鲁士哥尼斯堡城中有一条河&#xff0c;在这条河上有七座桥&#xff1a; 蓝色的代表河&#xff0c;这条河将城市分开成为四个区域&#xff0c;而七个橙…

深度学习 精选笔记(13.2)深度卷积神经网络-AlexNet模型

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

深入浅出Hive性能优化策略

我们将从基础的HiveQL优化讲起&#xff0c;涵盖数据存储格式选择、数据模型设计、查询执行计划优化等多个方面。会的直接滑到最后看代码和语法。 目录 引言 Hive架构概览 示例1&#xff1a;创建表并加载数据 示例2&#xff1a;优化查询 Hive查询优化 1. 选择适当的文件格…

unity学习(61)——hierarchy和scene的全新认识+模型+皮肤+动画controller

刚刚开始&#xff0c;但又结束的感觉&#xff1f; 1.对hierarchy和scene中的内容有了全新的认识 一定要清楚自己写过几个scene&#xff1b;每个scene之间如何跳转&#xff1b;build setting是add当前的scene。 2.此时的相机需要与模型同级&#xff0c;不能在把模型放在相机下…

odoo中传递上下文

在Odoo中&#xff0c;上下文&#xff08;context&#xff09;是一个非常重要的概念&#xff0c;它允许开发人员在不同的动作、视图或模型间传递信息。上下文通常用于传递特定的标志或变量&#xff0c;这些变量可以影响方法的行为或视图的展示方式。 向表单和动作传递参数 1. …

vue的一些个人理解

个人的一些理解吧 可能不是很全面有的地方可能也不准确 MVVM 的理解 MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。 Model 层代表数据模型&#xff0c;也可以在 Model 中定义数据修改和操作的业务逻辑; View 代表 UI 组件&#xff0c;它负责将数据模型转化成 U…

STM32的USART能否支持9位数据格式话题

1、问题描述 STM32L051 这款单片机。平常的 USART 串口传输是 8 位数据&#xff0c;但是他的项目需要用串口传输 9 位数据。当设置为 8 位数据时&#xff0c;串口响应中断正常。但是&#xff0c;当设置为 9 位数据时&#xff0c;串口就不产生中断了。USART2 的 ISR 寄存器 RXN…

ssh命令——安全远程连接Linux服务器

ssh命令是Secure Shell的简写&#xff0c;其功能是安全地远程连接服务器&#xff0c;ssh是OpenSSH套件中的客户端连接工具&#xff0c;通过SSH加密协议进行远程主机访问&#xff0c;并对远程服务器进行管理。 ssh命令的基本语法格式如下&#xff1a; ssh [选项] 主机名或IP地…