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

相关推荐
Yz987617 分钟前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
PersistJiao19 分钟前
Spark RDD 的宽依赖和窄依赖
spark·rdd·宽窄依赖
那一抹阳光多灿烂1 小时前
Spark中的Stage概念
大数据·spark
北京鹏生科技有限公司2 小时前
EcoVadis审核是什么?EcoVadis审核流程包括什么?
大数据·百度
Moshow郑锴3 小时前
数据库、数据仓库、数据湖、数据中台、湖仓一体的概念和区别
大数据·数据库·数据仓库·数据湖·湖仓一体
二进制_博客5 小时前
Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
大数据
hong1616886 小时前
大数据技术Kafka详解:消息队列(Messages Queue)
大数据·分布式·kafka
lisacumt6 小时前
【spark】pycharm 内使用pyspark连接有kerberos集群执行sql
python·pycharm·spark
心死翼未伤7 小时前
python从入门到精通:pyspark实战分析
开发语言·数据结构·python·spark·json
PersistJiao15 小时前
Spark RDD sortBy算子执行时进行数据 “采样”是什么意思?
spark·sortby·rangepartition