【系统架构师】-第19章-大数据架构设计理论与实践

四个特点

大规模(Volume)、高速度(Velocity)和多样化(Variety),价值(Value)。

五个问题

异构性(Heterogeneity)、规模(Scale)、时间性(Timeliness)、复杂性(Complexity)和隐私性(Privacy)

五个挑战

1. 数据获取问题。

2.数据结构问题。

3.数据集成问题。

4.数据分析、组织、抽取和建模等功能性挑战。

5. 如何呈现数据分析的结果,并与非技术的领域专家进行交互。

1、架构的演进

1)异步缓冲

2)读写分离

3)hadoop M/R批处理

2、大数据面临的挑战

数据复杂:结构化、半结构化数据

数据量大:

数据挖掘:

3、大数据处理架构特征:

1、鲁棒性和容错性:机器是不可靠的,允许机器宕机

2、低延迟读取和更新能力

3、横向扩展(Scalable):服务器主机扩展,而不是增强机器性能

4、通用性:多领域支持

5、延展性:需求变动

6、即席查询能力

7、最少维护能力

8、可调试性

4、Lambda架构

1、批处理层

存储数据集(HDFS)、M/R处理离线数据、直接生成 batch view

要求数据原始的、不可变、永远真实

2、加速层(流处理)

增量的数据流、生成 real-time view。有新数据后,更新r-t view。

采用Spark或Storm,结果缓存在MemSQL或Redis中

如果批处理层重新计算生成,则清空real-time view数据。最终一致性

3、服务层

整合batch View 与 real-time View数据集,形成结果集

采用 HBase或Cassandra

响应用户的查询请求,提供主数据集的计算结果的低延迟访问

4、查询视图

面向用户,由Hive创建可查询视图

5、优缺点

1.优点

(1)容错性好。 Lambda架构为大数据系统提供了更友好的容错能力,一旦发生错误,我们
可以修复算法或从头开始重新计算视图。
(2)查询灵活度高。批处理层允许针对任何数据进行临时查询。
(3)易伸缩。所有的批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式
的系统,我们可以通过增加新机器来轻松地扩大规模。
(4)易扩展。添加视图是容易的,只是给主数据集添加几个新的函数。

2.缺点

(1)全场景覆盖带来的编码开销。
(2)针对具体场景重新离线训练一遍益处不大。
(3)重新部署和迁移成本很高。

6、横向比对

1、事件溯源(Event Sourcing)

(1)整个系统以事件为驱动,所有业务都由事件驱动来完成。
(2)事件是核心,系统的数据以事件为基础,事件要保存在某种存储上。
(3)业务数据只是一些由事件产生的视图,不一定要保存到数据库中。

2、CQRS(查询修改分离)

5、Kappa架构

简化了Lambda架构,移除了批处理层,以消息队列Kafka 作为数据存储及流通道

当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经
过消息队列重播一次则可

优缺点:

1、部署维护简单

2、数据存储、回溯困难

kappa+架构

将不同来源的数据通过Kafka导入到Hadoop 中,通过HDFS来存储中间
数据,再通过 spark对数据进行分析处理,最后交由上层业务进行查询

6、Lambda与Kappa架构比对

7、补充实际案例架构

hive查询视图

MemSQL 内存数据库

HBase 整合view

kafka 向HDFS存储数据,并实时推送数据给Spark 流处理

在批处理层,把转化数据表和曝光数据表导入到Hive中,用Hive Sql做好join, 将两张表聚合而成的结果表导出到MySQL, 提供给服务层

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

提高螺栓连接强度——SunTorque智能扭矩系统

螺栓连接是工程中常见的一种连接方式,其强度对于设备的稳定性和安全性具有至关重要的影响。然而,由于各种因素的影响,螺栓连接在使用过程中往往会出现松动、断裂等问题,导致设备故障和安全隐患。因此,提高螺栓连接的强…

leetcode 热题 100_两数相加

题解一: 迭代:首先判断整数0,然后分别遍历两段链表,将对应位数的值相加并存入新链表,再遍历新链表,将节点值val>10的减10,并且其下一节点值val1。需要注意最后一位节点进位是将下一位节点值设…

电脑丢失msvcr120.dll文件怎么办-丢失msvcr120.dll文件的五种解决方法

今天有看到小伙伴们在问msvcr120.dll文件是什么,所以今天的这篇文章将给大家科普msvcr120.dll文件是什么,msvcr120.dll文件在电脑系统中的重要性,如果你的电脑中出现了关于msvcr120.dll文件丢失的问题,也可以参考这篇文章&#xf…

记录 Dubbo+Zookeeper 学习Demo

DubboZookeeper ZookeeperZookeeper 下载可能出现的问题 辅助程序下载dubbo-admin项目打包工程打包常见问题 SpringBoot集成Dubbo项目依赖定义服务接口服务端实现服务端配置依赖代码实现 消费端实现服务端配置依赖代码实现 启动 结合Dubbo官网学习如何完成SpringBootDubboZooke…

springBoot整合Redis(三、整合Spring Cache)

缓存的框架太多了,各有各的优势,比如Redis、Memcached、Guava、Caffeine等等。 如果我们的程序想要使用缓存,就要与这些框架耦合。聪明的架构师已经在利用接口来降低耦合了,利用面向对象的抽象和多态的特性,做到业务代…

Cesium ion 简介

Cesium ion SaaS 是一个强大、可扩展且安全的 3D 地理空间数据平台。可以上传您的数据,Cesium ion 会将其优化为 3D Tiles,并将其托管在云端,并将其流式传输到任何设备。 Cesium ion 包括访问精选的全球 3D 内容,包括 Cesium Wor…

jeecg 项目 springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖

springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖

04-自媒体文章-自动审核

自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后,开始审核文章 2 审核的主要是审核文章的内容(文本内容和图片) 3 借助第三方提供的接口审核文本 4 借助第三方提供的接口审核图片,由于图片存储到minIO中&…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的零售柜商品检测软件(Python+PySide6界面+训练代码)

摘要:开发高效的零售柜商品识别系统对于智能零售领域的进步至关重要。本文深入介绍了如何运用深度学习技术开发此类系统,并分享了全套实现代码。系统采用了领先的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5进行了性能比较,呈现了诸如…

算法学习系列(四十):贡献法

目录 引言概念一、孤独的照片二、牛的基因学三、字串分值 引言 关于这个贡献法考的不是很多,主要题型是出现在需要枚举每一个组合这类题,出现的次数较多。没有固定的模板,就是一种思想,跟贪心一样,每个题都是不一样的…

基于opencv的手势识别

当然可以,下面是一个使用OpenCV实现简单手势识别,并在摄像头捕捉的视频中描绘出手部轮廓为线条的示例。该代码会读取摄像头流,然后检测出手部,并用线条描绘出手的轮廓。 首先,你需要安装OpenCV库。如果你还没有安装&am…

C# 第三方曲线库及其特点

在 C# 中,有几个第三方库可以用于绘制曲线图,每个库都有自己的特点和优势。以下是一些常见的 C# 第三方曲线库及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.LiveC…

普通人也能年入百万的超级秘籍!2024超级机会,低薪人的第二事业

一、选对行业与把握时机尤为关键。 入场时机的选择,往往决定了你的起跑线。那些在行业赛道上升期便早早布局的人,无疑占据了极大的优势。想象一下,你置身于一个市场需求持续增长、发展空间巨大的行业,成功的机会自然大增。比如现…

Parade Series - WebRTC ( < 300 ms Low Latency )

Parade Series - FFMPEG (Stable X64) C:\Conda\parading-cam>ffmpeg -f dshow -i video"Surface Camera Front" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -an -rtsp_transport tcp -f rtsp://127.0.0.1:8554/cam0801

生存预后不显著?最佳阈值来帮你!| 附完整代码 + 注释

大家在进行生存预后分析时发现结果不显著,是不是当头一棒!两眼一黑!难不成这就代表我们的研究没意义吗?NONONO!别慌!说不定还有救!快来看看最佳阈值能不能捞你一把! 对生存分析感兴趣…

DAY by DAY 史上最全的Linux常用命令汇总----man

man是按照手册的章节号的顺序进行搜索的。 man设置了如下的功能键: 功能键 功能 空格键 显示手册页的下一屏 Enter键 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出man命令 h 列出所有功能键 /word 搜索word字符串 注意&#xff1a…

多数问题求解之蒙特卡洛与分治法

多数问题(Majority Problem)是一个有多种求解方法的经典问题,其问题定义如下: 给定一个大小为 n n n的数组,找出其中出现次数超过 n / 2 n/2 n/2的元素 例如:当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] […

Qt 如何搭建Lua的运行环境

一、Lua简介 Lua 是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程(procedural)编程、面向对象编程、函数式编程以及数据描述。Lua 是动态类型的,运行速度快,支持自动内存管理,因此被广泛用于配置、脚本…

java-集合工具类Collections

我们在使用它的时候记得导包 常见API 我们就简单看看第一第二个方法,代码如下,其余的知道用就行

基于经验模式分解和小波阈值的自适应降噪研究_杨铮

目的 针对轴承信号在采集过程中容易受到不同环境下噪声干扰,提出EMD分解结合小波阈值的自适应降噪的方法,对轴承振动信号进行降噪处理,提取出所需要的振动信号。方法 首先对含有噪声的轴承信号进行EMD分解,得到n个IMF并进行小波阈…