【Spark精讲】Spark RDD弹性体现在哪些方面?

什么是"弹性"?

一般对于分布式系统,"弹性"指的是可以根据计算规模进行动态伸缩的特性。当计算量增长时,可以动态增加资源来满足计算需求,而当计算量减少时,又可以降低资源配置来节约成本。

参考:什么是弹性伸缩ess_弹性伸缩(ESS)-阿里云帮助中心

我们在看一下RDD定义:Resilient Distributed Datasets,译为弹性分布式数据集,是一种基于集群内存计算的一种抽象。

所以从定义上看,RDD也是基于分布式系统的,主要是通过集群的内存资源来进行数据缓存与计算的,所以RDD的弹性是基于数据量的变化,可以动态的增加或者减少相应的资源(比如内存)来满足计算需求。

RDD的弹性体现

RDD的Partition和Partitioner是弹性的基础

Map端input split决定了Map端的分区数,分区数进一步决定了map阶段task的数量,Shuffle的Map阶段才使用的分区器partitioner,又决定了reduce阶段task的数量。

分区的动态可调是弹性的体现

可以根据数据量的大小,通过repartition、coalesce算子来增加或者减少分区数,来决定Task数的多少。

对应的计算资源调整,可以通过提交任务时的参数来调整,也可以设置成动态调整方式。

容错属不属于弹性?

容错是用来保障稳定性的,划分到"高可用"更合适,跟弹性没有太大关系。

比如:根据血缘对RDD进行出错后的恢复,Stage、Task失败的重试等。

主从架构属不属于弹性?

比如BlockManagerMaster和BlockManager是主从架构的,这个属于分布式系统的基本架构设计,属于系统层面的弹性,不属于RDD层面的弹性。

相关推荐
木头程序员5 分钟前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
DX_水位流量监测7 分钟前
无人机测流之雷达流速仪监测技术分析
大数据·网络·人工智能·数据分析·自动化·无人机
鹿衔`9 分钟前
Hadoop HDFS 核心机制与设计理念浅析文档
大数据·hadoop·hdfs
萤丰信息29 分钟前
开启园区“生命体”时代——智慧园区系统,定义未来的办公与生活
java·大数据·运维·数据库·人工智能·生活·智慧园区
TDengine (老段)1 小时前
TDengine Rust 连接器进阶指南
大数据·数据库·物联网·rust·时序数据库·tdengine·涛思数据
YangYang9YangYan1 小时前
中专大数据技术专业学习数据分析的价值分析
大数据·学习·数据分析
九河云1 小时前
数据驱动未来,华为云DWS为智能决策提速
大数据·人工智能·安全·机器学习·华为云
FONE_Platform1 小时前
能源化工行业全面预算解决方案:重塑双碳目标下的财务新动能
大数据·人工智能
项目整合库2 小时前
Coinstore B.KU 数字金融与 RWA 主题活动圆满举行
大数据·金融