大数据架构设计

本博客地址: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.rhkb.cn/news/282348.html

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

相关文章

策略分析是什么?一文说清策略分析的方方面面!附10款策略分析必备模板!

在日益激烈的商业竞争环境中,有效的策略分析不仅能帮助企业全面了解自身的优势与劣势,同时也能提供决策制定的关键依据。一个优质的策略分析报告能帮助企业从宏观与微观两个层面洞察市场动态,掌握竞争对手信息,以及制定未来的战略…

C语言复杂度(个人笔记)

时间复杂度主要衡量一个算法的运行快慢. 空间复杂度主要衡量一个算法运行所需要的额外空间. 时间复杂度 算法中的基本操作的执行次数,为算法的时间复杂度. 只需要大概执行次数,我们使用大O的渐进表示法。(看谁对数学表达式的影响最大) 空间复杂度 是…

2.Redis有五种主要的数据类型

Redis有五种主要的数据类型 String(字符串):String类型是最简单的数据类型,可以存储任意类型的数据,例如整数、浮点数、字符串等。String类型支持一些基本的操作,如设置值、获取值、增减值等。 Hash&#…

杂记8---多线激光雷达与相机外参标定

背景:本人开源的标定程序,提供大家参考学习 基于棋盘格的多线激光雷达和鱼眼/针孔模型相机外参标定的程序 前言 标定数据,只需要一个棋盘格标定板。把标定板放置lidar 与camera 共视区域,拜拍几个pose进行采集。 基于简谐原则…

webpack5零基础入门-12搭建开发服务器

1.目的 每次写完代码都需要手动输入指令才能编译代码,太麻烦了,我们希望一切自动化 2.安装相关包 npm install --save-dev webpack-dev-server 3.添加配置 在webpack.config.js中添加devServer相关配置 /**开发服务器 */devServer: {host: localhos…

布隆过滤器原理介绍和典型应用案例

整理自己过去使用布隆过滤器的应用案例和理解 基本介绍 1970年由布隆提出的一种空间效率很高的概率型数据结构,它可以用于检索一个元素是否在一个集合中,由只存0或1的位数组和多个hash算法, 进行判断数据 【一定不存在或者可能存在的算法】 如果这些…

内容检索(2024.03.22)

随着创作数量的增加,博客文章所涉及的内容越来越庞杂,为了更为方便地阅读,后续更新发布的文章将陆续在此汇总并附上原文链接,感兴趣的小伙伴们可持续关注文章发布动态! 本期更新内容: 1. 真实案例分享--E…

C#,人工智能,机器学习,聚类算法,训练数据集生成算法、软件与源代码

摘要:本文简述了人工智能的重要分支——机器学习的核心算法之一——聚类算法,并用C#实现了一套完全交互式的、可由用户自由发挥的,适用于聚类算法的训练数据集生成软件——Clustering。用户使用鼠标左键(拖动)即可生成任意形状,任意维度,任意簇数及各种数据范围的训练数…

【python】flask请求钩子,主动抛出异常与异常捕获

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

综合实验---Web---进阶版

目录 实验配置: 1.PHP调整主配置文件时,修改文件内容 1.原内容调整(在编译安装的情况下) 2.调整如下 3.没有调整的,根据之前配置就行 2.配置Nginx支持PHP解析 1.原内容如下 2.调整如下 3.验证PHP测试页 1.原内容如下 2.调整如下 4…

Vant4:自动导入样式无效问题

今天前端小伙伴使用了Vant4,发现了一个奇怪的问题:按照Vant官方文档,按需引入组件样式(Vite 的项目): 安装插件 # 通过 npm 安装 npm i vant/auto-import-resolver unplugin-vue-components unplugin-aut…

Linux——du, df命令查看磁盘空间使用情况

一、实现原理: df 命令的全称是Disk Free ,显而易见它是统计磁盘中空闲的空间,也即空闲的磁盘块数。它是通过文件系统磁盘块分配图进行计算出的。 du 命令的全称是 Disk Used ,统计磁盘有已经使用的空间。它是直接统计各文件各目…

金融知识分享系列之:支撑阻力

金融知识分享系列之:支撑阻力 一、支撑阻力原理二、支撑阻力作用1.识别市场资金的预期2.作为入场和平仓的重要参考 三、寻找支撑阻力四、延伸思考五、支撑阻力总结 一、支撑阻力原理 支撑阻力核心要素: 锚定效应订单驱动 支撑阻力原理: 市…

产品经理面试如何自我介绍?

金三银四求职季,你是不是也有面试的冲动!但面试并不是头脑一热就能取得好结果,在此之前,必须得有周全的准备,才能应对好面试官的“连环问”! 所以,今天这篇产品经理面试干货文章,别…

数据结构--链表刷题(一)快慢指针

1.快慢指针 先看一道简单的题目:返回中间结点 这道题有一个最朴素的做法就是先遍历一边链表,设置计数器求出链表长度,再重新走1/2的链表长度,即可返回中间节点 // 第二种解法 //这种解法需要遍历两次链表ListNode cur1 head;int…

Git基础(24):分支回退

前言 将分支回退到之前的某个版本 开发中,可能开发某个功能不需要了,或者想要回退到之前历史的某个commit, 放弃后来修改的内容。 放弃已修改的内容 如果未提交,直接使用 git revert分支回退到指定commit 操作前的分支网络图…

Git版本管理--远程仓库

前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: 重学Git-Git远程仓库管理_git remote add origin-CSDN博客 Git学习笔记&am…

【数据结构】选择排序

大家好,我是苏貝,本篇博客带大家了解选择排序,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 基本思想二. 直接选择排序 一. 基本思想 每一次从待排序的数据元素中选出最小&#xff…

【GPT概念-03】:人工智能中的注意力机制

说明 注意力机制生成分数(通常使用输入函数),确定对每个数据部分的关注程度。这些分数用于创建输入的加权总和,该总和馈送到下一个网络层。这允许模型捕获数据中的上下文和关系,而传统的固定序列处理方法可能会遗漏这…

android adb 实时画面 和操作

1. 下载 scrcpy 建议 windows10 用户 点击链接下载 不然可能会提示缺少部分 dll https://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.ziphttps://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.zip windo…