【系统架构设计师】二十五、大数据架构设计理论与实践③

news2024/9/22 9:50:35

目录

六、大数据架构设计案例分析

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

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

6.2.1 第一版架构

6.2.1 第二版架构

6.2.3 第三版架构

6.3 某证券公司大数据系统

6.4 某电商智能决策大数据系统


六、大数据架构设计案例分析

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

        某网采用以 Lambda 架构搭建的大数据平台处理里约奥运会大规模视频网络观看数据,具体
平台架构设计如下图所示。

        Lambda 架构实时处理层采用增量计算实时数据的方式,可以在集群规模不变的前提下,秒级分析出当日概览所需要的信息。赛事回顾模块需要展现自定义时间段内的历史最高在线人数、逐日播放走势、直播最高在线人数和点播视频排行等海量数据的统计信息,由于奥运期间产生的数据通常不需要被经常索引、更新,因此要求采用不可变方式存储所有的历史数据,以保证历史数据的准确性。
        Lambda 架构的批处理层采用不可变存储模型,不断地往主数据集后追加新的数据,恰好可以满足对奥运数据的大规模统计分析要求。

        数据计算层可以分为离线计算、实时计算、合并计算 3 个部分。

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

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

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

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

        某网广告平台展示的数据指标包含两类:曝光类(包括曝光数、点击数、点击单价、花费),转化类(包括转化下单数、转化下单金额、转化付款数、转化付款金额)。前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。

6.2.1 第一版架构

        第一版采用了典型的 Lambda 架构形式,架构图如下图所示。

        (1)批处理层:每天凌晨将 Kafka 中浏览、下单等消息同步到 HDFS 中,将 HDFS 中数据解析为 Hive 表,然后使用 HQL 或 Spark SQL 计算分区统计结果 Hive 表将 Hive 表转储到MySQL中作为批视图
        (2)加速层:使用 Spark Streaming 实时监听 Kafka 下单、付款等消息,计算每个追踪链接维度的实时数据,将实时计算结果存储在 Redis 中作为实时视图
        (3)服务层:采用 Java Web 服务,对外提供 HTTP 接口,Java Web 服务读取 MySQL 批视图表和 Redis 实时视图表。 

6.2.1 第二版架构

        针对第一版的两个问题,在第二版对数据流的结构做了一些修改。在实时处理层做了一个常驻后台的Python脚本,不断调用第三方API的小时报表,更新当日的曝光数据表

        完成第二版改动之后, Java服务的计算压力明显下降。性能的瓶颈变成了查询redis数据
        由于redis里面的实时数据是业务无关的,仅统计了追踪链接维度的聚合数据。每次查询当日的转化数据,需要现在MySQL 中查询出广告和跟踪链接的关系,找出所有的跟踪链接,再查询出这些跟踪链接的统计数据做聚合。

        另一方面,离线计算的过程中涉及多次MySQL 和 Hive之间的导表操作,离线任务依赖链
比较长,一旦出错,恢复离线任务的时间会比较久。

6.2.3 第三版架构

        考虑到MySQL 方便聚合、方便服务层读取的优点,在第三版中对Lambda 架构做了一些改动,在数据层面只维护一张包含所有指标的 MySQL 表。MySQL 表的stday(统计日期)字段作为索引, stday= 当天的保存实时数据, st_day<当天的保存离线数据。

        第三版只维护一张MySQL 数据统计表,每天的离线任务会生成两张hive表,分别包含转
化数据和曝光数据
。这两张Hive表分别更新MySQL 表的st_day

        在实时数据这块,常驻后台的 Python脚本更新stday=当天的数据的曝光类字段。 spark streaming程序在处理kafka中的实时下单消息时,不再统计数据到redis,而是请求业务Java服务暴露出来的更新数据接口。在更新数据的接口中,找到当前下单的追踪链接所属的广告,更新MySQL 中 stday= 当天的数据的转化类字段。这样就把查询阶段的关联操作分散在了每条订单下单的处理过程中,解决了实时数据查询的瓶颈。最终的 Java服务层也只需要读取一个MySQL 表,非常简洁。

6.3 某证券公司大数据系统

        实时日志分析平台基于Kappa 架构,使用统一的数据处理引擎Flink可实时处理全部数据,并将其存储到 Elastic-Search与 OpenTSDB 中。实时日志分析平台技术架构如下图所示。

        实时处理过程如下:
        (1)日志采集,即在各应用系统部署采集组件Filebeat,实时采集日志数据并输出到 Kafka缓存
        (2)日志清洗与解析,即基于大数据计算集群的Flink计算框架,实时读取Kafka 中的日志数据进行清洗和解析,提取日志关键内容并转换成指标,以及对指标进行二次加工形成衍生指标。
        (3)日志存储,即将解析后的日志数据分类存储于Elastic-Search日志库中,各类基于日志的指标存储于 OpenTSDB 指标库中,供前端组件搜索与查询。
        (4)日志监控,即通过单独的告警消息队列来保持监控消息的有序管理与实时推送
        (5)日志应用,即在充分考虑日志搜索专业需求的基础上,平台支持搜索栏常用语句保存,选择日志变量自动形成搜索表达式,以及快速按时间排序过滤、查看日志上下文等功能。同时,基于可视化分析和全息场景监控可实时展现各种指标和趋势,并在预警中心查看各类告警的优先级和详细信息,进而结合告警信息关联查询系统日志内容来分析解决问题。此外,开发配置中心还提供了自定义日志解析开发功能,并支持告警规则、告警渠道配置。

6.4 某电商智能决策大数据系统

        实时智能决策大数据平台基于Kappa 架构,使用统一的数据处理引擎Flink可实时处理流数据,并将其存储到Hive与 Tair中,以供后续决策服务的使用。智能决策大数据平台技术架构如下图所示。

        实时处理的过程如下:
        (1)数据采集,即B 端系统会实时收集用户的点击,下单以及广告的曝光和出价数据并输出到Kafka 缓存。
        (2)数据的清洗与聚合,即基于大数据计算集群 Flink计算框架,实时读取Kafka 中的实时流数据,过滤出需要参与计算的字段,根据业务需求,聚合指定时间端的数据并转换成指标。
        (3)数据存储,即将Flink计算得到数据存储到 Hive日志库中,需要参与模型计算计算的字段存储到 Tair分布式缓存中。当需要进行模型计算时,决策服务会从Tair中读取数据,进行模型的计算,得到新的决策参数和模型。决策服务基于微服务架构,客户端部署在业务方系统中,服务端主要用于计算决策参数和模型,当服务端计算得到新的参数,此时会通过Zookeeper通知部署到业务方系统的客户端,客户端此时会拉取新的参数并存储到本地,并且客户端提供了获取参数的接口,业务方可以无感知调用。

往期推荐

【系统架构设计师】二十五、大数据架构设计理论与实践①-CSDN博客文章浏览阅读541次,点赞11次,收藏14次。Lambda 架构设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成 Hadoop、Kafka、Spark、Storm 等各类大数据组件。Lambda 是用于同时处理离线和实时数据的,可容错的,可扩展的分布式系统。它具备强鲁棒性,提供低延迟和持续更新。Lambda架构应用场景:机器学习、物联网、流处理。https://shuaici.blog.csdn.net/article/details/140930515

【系统架构设计师】二十五、大数据架构设计理论与实践②-CSDN博客文章浏览阅读838次,点赞29次,收藏14次。Kappa 架构的原理就是:在Lambda 的基础上进行了优化,删除了 Batch Layer的架构,将数据通道以消息队列进行替代。因此对于Kappa 架构来说,依旧以流处理为主,但是数据却在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。https://shuaici.blog.csdn.net/article/details/140932788 

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

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

相关文章

centos上传工具

yum install lrzsz 安装完成之后 作用是 输入 rz 可以本地上传文件

【生成式人工智能-八-大型语言模型的能力评估】

语言模型的能力评估 评估难度来自哪里输出没办法确定给出选择题本身就没标准答案 评估方法人力用语言模型来评估语言模型语言模型的偏爱 评估语言模型的数据集评估模型的不同能力阅读长文的能力心智测验道德性测试安全性测试 通常情况下我们想到的语言模型能力评估&#xff0c;…

图神经网络实战(18)——消息传播神经网络

图神经网络实战&#xff08;18&#xff09;——消息传播神经网络 0. 前言1. 消息传播神经网络2. 实现 MPNN 框架小结系列链接 0. 前言 我们已经学习了多种图神经网络 (Graph Neural Networks, GNN) 变体&#xff0c;包括图卷积网络 (Graph Convolutional Network, GCN)、图注意…

在macOS平台上通过Jenkins远程打包报错,提示errSecInternalComponent

问题&#xff1a;在macOS平台上通过Jenkins远程打包报错&#xff0c;提示errSecInternalComponent 原因 出现这个问题的主要原因&#xff1a;Jenkins以ssh方式到slave机上&#xff0c;默认是没有账户的&#xff0c;但是访问钥匙串要求必须有用户身份 通过Xcode打包的过程中&am…

Ps:通过 RGB 值计算 HSB 值

在 Photoshop 中&#xff0c;HSB&#xff08;色相、饱和度和明度&#xff09;仅作为表达颜色的一种方式而存在&#xff0c;并不是一种颜色模式。 色相/饱和度命令就是基于色彩三要素进行调色的常用命令。 还有一个与 HSB 相关的滤镜&#xff1a;HSB/HSL 滤镜&#xff0c;用于实…

无人机培训机构推广运营理论技术

一、市场定位与品牌建设 在无人机培训行业的激烈竞争中&#xff0c;精准的市场定位是成功的第一步。首先&#xff0c;需明确目标学员群体&#xff0c;如航拍爱好者、农业植保服务者、应急救援人员或专业无人机操作员等。基于目标群体的需求&#xff0c;构建差异化的品牌形象。…

一个升级的多租户权限管理系统,组件化,模块化,轻耦合,高扩展企业级的应用框架,功能强大(附源码)

前言 在现代软件开发中&#xff0c;多租户权限管理系统是企业级应用中的一个关键组件。然而&#xff0c;现有的一些框架&#xff0c;如RuoYi&#xff0c;虽然提供了一些基本的功能&#xff0c;但在面对更复杂的企业级需求时&#xff0c;如原生的MyBatis使用、复杂的分页处理&a…

【桥接模式】设计模式系列:分离抽象与实现的艺术(构建可扩展性的桥梁)

文章目录 Java设计模式系列之桥接模式&#xff1a;分离抽象与实现1. 引言2. 设计模式简介桥接模式定义桥接模式与其他模式的区别 3. 桥接模式的基本原理模式的核心概念抽象化与实现化的分离实现细节的封装解耦的机制 4. 桥接模式的角色介绍角色介绍UML和时序图代码示例说明 5. …

.Net Core IIS 程序报错 Access to the path c:\\windows\\TEMP\\poifiles is denied

程序运行报错&#xff1a;Access to the path c:\\windows\\TEMP\\poifiles is denied &#xff0c;此错误本文介绍两种解决办法&#xff0c;选择适合你的方法即可&#xff1b;一般.Net程序运行方案二可能比较常用。 解决方案一&#xff1a; 从 IIS 访问文件系统 如果您在浏…

【HarmonyOS NEXT星河版开发学习】小型测试案例09-B站卡片

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;暂未发布&#xff09; 前言 鸿蒙开发中层叠布局通过Stack容器组件实现了强大的页面层叠和位置定位能力。这种布局方式不仅增强了界面的美观性和功能性&#xff0c…

《Advanced RAG》-10-Corrective Retrieval Augmented Generation (CRAG)

摘要 CRAG 设计了一个轻量级检索评估器&#xff0c;用于评估针对特定查询检索到的文档的整体质量&#xff0c;并使用网络搜索作为改进检索结果的辅助工具。CRAG 可与基于 RAG 的各种方法无缝集成&#xff0c;并提供了一个插件式的解决方案。 CRAG 的主要思想是引入一个检索评估…

前端面试宝典【vue篇】【5】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

Java与Python的跨界融合:打造高效与灵活的编程体验

目录 一、引言 1.1 为什么结合Java与Python 1.2 结合方式概览 二、实现方法详解 2.1 Web服务接口 2.2 命令行调用 三、高级融合方式 3.1 Jython 3.2 GRPC/Protobuf 四、优势与挑战 4.1 优势 4.2 挑战 五、结论 在当今快速发展的软件开发领域&#xff0c;单一编程语…

零售企业中 SRM 系统与开源 AI 智能名片商城系统的协同作用

摘要&#xff1a;本文深入探讨了 SRM 系统在零售企业与上游供应商关系管理中的关键作用&#xff0c;并引入开源 AI 智能名片商城系统&#xff0c;细致分析了两者如何协同助力零售企业优化供应链、提升竞争力。通过阐述 SRM 系统的功能模块及其对零售企业的多方面积极影响&#…

职业教育物联网实验实训室建设应用案例

在万物互联的时代背景下&#xff0c;物联网技术以其强大的连接能力、数据分析与处理能力&#xff0c;正在深刻改变着社会生产和生活的方方面面。在这一背景下&#xff0c;职业教育也迎来了新的发展机遇和挑战。为了满足社会对物联网技术人才的需求&#xff0c;提高职业教育的质…

七夕警示:探索社工库与网络搜索下的个人隐私泄露与保护策略

随着七夕节的脚步日益临近&#xff0c;空气中弥漫着浪漫与温馨的气息。这个充满爱意的节日&#xff0c;我们沉浸在与心爱之人共享甜蜜时光的同时&#xff0c;不应忽视网络安全和个人隐私保护的重要性。在数字化时代&#xff0c;个人信息泄露的风险无处不在&#xff0c;如何在享…

Nginx隐藏欢迎页Welcome to CentOS

1、背景 刚刚搭建好Nginx&#xff0c;访问了一下根路径&#xff0c;就出现了欢迎页&#xff0c;额&#xff0c;这个得干掉才行。2、解决 网上搜索&#xff0c;说是使用 yum -y install nginx 安装的问题。 额&#xff0c;这个应该是配置的问题吧。原配置 location / {root h…

Linux磁盘管理_文件系统

系列文章目录 提示&#xff1a;仅用于个人学习&#xff0c;进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 提示&#xff1a;写完文章后&…

Visual Studio 2022: 100 个实用技巧及详细操作方法

目录 1. 界面和环境设置 1.1 调整主题和配色 1.2 自定义工具栏 1.3 使用解决方案资源管理器的筛选功能 1.4 设置多行光标编辑 1.5 利用窗口布局保存和切换 2. 代码编辑 2.1 快速导航到文件、类、方法 2.2 使用代码片段加速编码 2.3 启用代码格式化 2.4 使用 CodeLens…

stm32入门学习12-软件和硬件SPI操作W25Q64

&#xff08;一&#xff09;SPI协议 SPI和I2C同样是一种通信协议&#xff0c;SPI相对I2C的优势是更快的传输速度&#xff0c;其和I2C一样为同步传输&#xff0c;即拥有一根时钟线&#xff0c;但是SPI拥有两根数据线&#xff0c;一根用于主机发送&#xff0c;一根用于主机接收&…