当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/263408.html

相关文章:

  • 【从客户端理解Kafka的使用方式】
  • 『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻
  • 非制冷红外成像技术实现高灵敏度和高分辨率
  • @Resource 和 @Autowired区别是什么?
  • K8S的一个pod中运行多个容器
  • 《每天一分钟学习C语言·一》
  • zookeeper:启动后占用8080端口问题解决
  • 深度学习中的高斯分布
  • 【已解决】Atlas 导入 Hive 元数据,执行 import-hive.sh 报错
  • 在 Windows PC 上轻松下载并安装 FFmpeg
  • 21.Servlet 技术
  • 【Hive】——DDL(PARTITION)
  • SpringBoot 源码解析4:事件监听器
  • 使用 FastAPI 和 Vue.js 实现前后端分离
  • 算法基础之SPFA判断负环
  • 一些常用的Linux命令及其简要说明(持续更新)
  • 开发企业展示小程序的关键步骤和技巧
  • Python-Selenium-使用 pywinauto 实现 Input 上传文件
  • Go语言运行时与自家平台对比后认识
  • leetcode 450. 删除二叉搜索树中的节点
  • 小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?
  • selenium学习
  • 前端开发新趋势:Web3、区块链和虚拟现实
  • 如何安装运行Wagtail并结合cpolar内网穿透实现公网访问网站界面
  • 【>D:\10\Debug\RCa00828(34): fatal error RC1022: expected ‘#endif‘】
  • 使用vite搭建项目时,在启动vite后,浏览器显示页面:找不到localhost的网页
  • libp2p 快速开始
  • 【数据结构】——排序算法简答题模板
  • vue3.0基础
  • Kafka本地安装⭐️(Windows)并测试生产消息以及消费消息的可用性