【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层面的弹性。

相关推荐
数据与人工智能律师7 小时前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
mykyle9 小时前
Elasticsearch-ik分析器
大数据·elasticsearch·jenkins
weixin_lynhgworld11 小时前
淘宝扭蛋机小程序系统开发:重塑电商互动模式
大数据·小程序
RPA+AI十二工作室13 小时前
影刀RPA_Temu关键词取数_源码解读
大数据·自动化·源码·rpa·影刀
Sui_Network13 小时前
探索 Sui 上 BTCfi 的各类资产
大数据·人工智能·科技·游戏·区块链
大数据张老师15 小时前
用 AI 做数据分析:从“数字”里挖“规律”
大数据·人工智能
博闻录16 小时前
以 “有机” 重构增长:云集从电商平台到健康生活社区的跃迁
大数据·重构·生活
nbsaas-boot18 小时前
收银系统优惠功能架构:可扩展设计指南(含可扩展性思路与落地细节)
java·大数据·运维
lingling00919 小时前
实验记录安全存储:生物医药科研的数字化基石
大数据·人工智能