大数据-计算框架选型与对比
计算框架选型与对比
- 一、大数据平台
- 二、计算框架分类
- 1.批处理架构
- 2.实时流处理架构
- 3.流批一体处理架构
- 三、计算框架关键指标
- 1.处理模式
- 2.可伸缩性
- 3.消息传递
- 3.1 至少一次(at least once)
- 3.2 至多一次(ai most once)
- 3.3 恰好一次(exactly once)
- 4.中间结果存储
- 5.迭代计算
- 6.吞吐量
- 7.容错
- 8.状态管理
- 四、计算框架对比
- 总结
- 参考链接
一、大数据平台
针对大数据的应用每个企业都有自己特定的需求和情况,所以都需要针对需求成本技术等搭建自己的大数据平台。大数据平台是一个对海量数据从采集、存储、计算、应用、管理、运维的多方位、多维度的组合研究设计,从而建设合理高效满足企业需求的大数据平台架构。
二、计算框架分类
为了应对数据量的激增、分析需求时效性的要求,计算框架逐步从早期的批处理转变到现在的实时流处理的转变,按照对数据处理方式计算框架可以分类如下:
1.批处理架构
批处理指的是将数据按照批次进行收集、存储和处理分析。批处理是一种离线数据处理方式、数据被收集完毕后才会进行处理,因此需要等待一段时间。早期大数据平台基本都是采用批处理对数据进行计算。Apache Hadoop就是一个批处理框架,包括存储组件HDFS和计算组件MapReduce。
优点:
- 适用于离线数据处理,特别是对历史数据进行分析和挖掘 (例如日志数据、数据库数据等)
- 高吞吐量、能够处理大规模数据、适合大数据分析
- 处理的数据规模比较大,通常数百万或数千万条数据
缺点:
- 不能实现实时分析,数据处理延时比较高
- 不适合低延迟场景
2.实时流处理架构
实时流处理就是数据生产之后立刻进行处理,数据以流的形式产生后即可进行处理和分析,可以实现更低的延迟和更高的即可性。实时流是一种在线数据处理方式,Apache Storm和Apache Samza是实时流处理架构。
优点:
- 实时性更强
- 低延迟、适合一些即时场景(例如金融交易、物联网等)
- 一般是实时小规模数据流
缺点:
- 针对离线数据处理吞吐量低于批处理
- 可能无法支持复杂逻辑处理
3.流批一体处理架构
随着需求发展,大数据需要提供更全面的数据处理能力,也就是需要同时支持批处理和实时处理。所以一个架构将批处理和流处理结合成为一种趋势,将实时流数据存储下来,然后在批量任务中进行深入分析和挖掘。Apache Spark和Apache Flink是典型的流批一体处理架构。
优点:
- 可以充分发挥批处理和实时处理的优势,满足不同的业务需求。
- 可以减少实时流处理的压力,将部分处理转移到批处理中进行。
缺点:
- 增加了系统复杂性,需要同时维护批处理和实时处理组件
- 数据一致性需要特别关注
三、计算框架关键指标
计算框架在对大数据处理过程中会遇到一些普遍存在和框架需要处理的问题,所以计算框架支持的功能和解决一些问题的处理方式可以看作关键指标和对比维度。主要维度如下:
1.处理模式
处理模式是指计算框架对批处理和实时处理支持与否。
2.可伸缩性
可伸缩性是指系统通过增加资源来应对不断增加的负载的能力。由于大数据本地就存在负载不均衡或者不连续的情况,所以是大数据架构的基本指标。现有的大数据框架基本都是通过水平拓展来应对负载的增加。
3.消息传递
针对在处理过程中如果出现异常,每个框架对消息如何处理并不相同。按照处理类型分为
3.1 至少一次(at least once)
意味着会很多次尝试对消息进行处理,并且至少处理成功一次。可能导致最终的处理结果中数据重复的情况。
3.2 至多一次(ai most once)
意味只会一次尝试对消息进行处理,也就是最多成功一次。可能导致最终处理结果中数据缺失的情况
3.3 恰好一次(exactly once)
意味着该消息不会被重复处理,也不会不进行处理,只会被精确的处理一次。这种情况最终的处理结果中数据是精准的。
4.中间结果存储
计算过程中中间的结果存储介质,如果保存到磁盘、则计算速度慢、但是对内存需求会比较低;如果保存到内存、则计算速度快、但是需要较大的内存支持。
5.迭代计算
迭代计算是指迭代方法的实现,该迭代方法在没有实际解的情况下或在实际解的成本过高的情况下估计近似解
6.吞吐量
7.容错
分布式系统中,包含任务故障、节点故障、网络故障等,框架应该能够恢复,并且应该从它离线的位置再次开始处理,一般通过不时地检查流式传输到某个持久存储的状态来实现
8.状态管理
在状态处理要求的情况下,我们需要维护某些状态(例如记录中看到的每个不同单词的计数),框架应该能够提供一些机制来保存和更新状态信息。
四、计算框架对比

总结
以上对大数据平台组成、计算框架需要提供哪些功能、常用计算框架对比。
参考链接
1.大数据处理平台的架构演进:从批处理到实时流处理
相关文章:
大数据-计算框架选型与对比
计算框架选型与对比 一、大数据平台二、计算框架分类1.批处理架构2.实时流处理架构3.流批一体处理架构 三、计算框架关键指标1.处理模式2.可伸缩性3.消息传递3.1 至少一次(at least once)3.2 至多一次(ai most once)3.3 恰好一次&…...
2023亚太杯数学建模C题思路 - 我国新能源电动汽车的发展趋势
1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…...
【02】ES6:let 和 const 命令
一、let 命令 ES6 新增了 let 命令,用来声明变量。相对于 var 命令,有以下特点。 1、存在块级作用域 let 拥有块级作用域,声明的变量仅在块级作用域内有效。 // let 存在块级作用域,变量 a 只在当前代码块有效,在代…...
230814期就业平均薪资:8146元——转行是男人最好的医美!~
记得三个月前,很多同学在从事着跟后台网优完全不同的工作,虽然岗位不一样,但是薪资低,重复性劳动,加班多,发展受限,大家都一样身心饱受折磨......回头看,如梦般不真实,却…...
shell脚本三
目录 一、循环语句 一、循环 二、for循环语句 1.列表循环 2.与c语言循环相似的for循环 3.使用for打印三角形以及乘法表 4.测试172.16.114.0网段存活的主机并将存活的主机IP地址写入文件中,未存活的主机放入另一文件中 三、while循环语句 四、until循环语句…...
地埋式积水监测仪厂家直销推荐,致力于积水监测
地埋式积水监测仪是一种高科技设备,能够实时监测地面积水深度,并及时发出预警信息,有效避免因积水而产生的安全隐患。这种智能监测仪可以安装在城市道路、立交桥、地下车库等易积水地势较低的地方,以确保及时监测特殊地段的积水&a…...
CentOS7安装部署Kafka with KRaft
文章目录 CentOS7安装部署Kafka with KRaft一、前言1.简介2.架构3.环境 二、正文1.部署服务器2.基础环境1)主机名2)Hosts文件3)关闭防火墙4)JDK 安装部署 3.单机部署1)下载软件包2)修改配置文件3࿰…...
Java,数据结构与集合源码,关于Map接口的实现类(HashMap、LinkedHashMap)
HashMap中的元素的特点: HashMap中的所有key之间是不可重复的、无序的。所有的key构成一个Set集合。 HashMap中的所有的value彼此之间是可重复的、无序的。所有的value构成一个Collection集合。 HashMap中的一对key-value,就构成了一个entry。Map中的ent…...
【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断
GUI编程 04 贪吃蛇小游戏 4.4 第四步:食物及成绩判断 首先,添加食物与分数的数据定义: //食物的坐标int foodX;int foodY;Random random new Random();//积分面板数据结构int score;在初始化方法中,添加(画出)食物与分数&…...
洗地机哪个牌子好用?洗地机选购攻略
传统的清洁方式都是扫把拖把的结合,既繁琐也劳累,每次清洁完后还得累的腰酸背痛的,像厨房这种地方甚至会不容易清洁干净,总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题,不用一遍遍的重复扫地拖地擦地&#…...
节能灯和led灯哪个更护眼?精选高品质的LED护眼台灯
节能灯和LED灯相比,我认为LED灯会更加护眼一些,不过想要更护眼建议选择LED的护眼台灯会更好! 大家都知道光亮对于我们来说是非常重要的,尤其是夜晚的时候,往往要借助一些灯具来提供充足的照明。对于孩子而言࿰…...
大数据管家 DataSophon 1.2介绍
DataSophon 1.2...
vue实现爱心形状的复选框
目录 HTML代码: CSS代码: Vue代码: 这个例子使用了CSS来创建一个爱心形状的复选框,并使用Vue来控制其选中状态。点击复选框时,将调用toggleChecked方法来切换checked属性的值,以控制复选框的状态。 以下…...
珠江啤酒坚持创新,“酿”造电子化采购平台
珠江啤酒 广州珠江啤酒股份有限公司(简称“珠江啤酒”)是一家以啤酒酿造产业和啤酒文化产业“双主业”协同发展、包装产业配套发展的大型现代化国有控股企业。2010年,在深交所上市,下属企业16家,其中啤酒企业12家&…...
数据仓库模式之详解 Inmon 和 Kimball
目录 一、前言 二、企业信息工厂(Inmon) 2.1 概念 2.2 主要组件 2.3 流程 三、多维数据仓库(Kimball) 3.1 概念 3.2 核心组件 3.3 流程 四、异同及用途对比 4.1 异同对比 4.2 特征比较 一、前言 大部分关于数据仓库构建…...
斐波那契数列数列系列问题详解
斐波那契数列数列是我们学习递归的入门问题,是一种非常经典的题型,也衍生出了一些更复杂的题型,这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列? 斐波那契数列(Fibonacci sequenc…...
Day38力扣打卡
打卡记录 网格中的最小路径代价(动态规划) 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…...
【C语言:深入理解指针二】
文章目录 1. 二级指针2. 指针数组3. 字符指针变量4. 数组指针变量5. 二维数组传参的本质6. 函数指针变量7. 函数指针数组8. 转移表9. 回调函数10. qsort函数的使用与模拟实现 1. 二级指针 我们知道,指针变量也是变量,它也有自己的地址,使用什…...
前端实现表格生成序号001、002、003自增
我们最终想要实现的效果如图,从后端获取数据之后,不使用data中的id,而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…...
【Django-01】 视图函数和视图类
视图函数 作用详解视图函数的特点视图类实际开发怎么用一个无意义的demo 作用 用于返回给前端数据详解 def list(request):"""1.普通的视图函数 request是HttpRequest 函数2.且必须用request.GET|request.POST 指定方法是什么方法3.返回值不能用 rest_framewor…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
