大数据学习(30)-Spark Shuffle

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


Spark Shuffle

Map 和 Reduce
在Shuffle过程中. 提供数据的称之为Map端(Shuffle Write) 接收数据的 称之为 Reduce端(Shuffle Read)
在Spark的两个阶段中, 总是前一个阶段产生 一批Map提供数据, 下一阶段产生一批Reduce接收数据。

Spark 提供2种Shuffle管理器:
• HashShuffleManager
• SortShuffleManager

优化后
基本和未优化的一致,不同点在于

  1. 在一个Executor内, 不同Task是共享Buffer缓冲区
  2. 这样减少了缓冲区乃至写入磁盘文件的数量, 提高性能

SortShuffleManager

SortShuffleManager的运行机制主要分成两种,一种是普通运行机制,另一种是bypass运行机制。
bypass运行机制的触发条件如下:
1)shuffle map task 数量小于
spark.shuffle.sort.bypassMergeThre
shold=200 参数的值。
2) 不是聚合类的 shuffle 算子 ( 比如
reduceByKey)
同普通机制基本类同 , 区别在于 , 写入磁盘临时文件的时候不会在内 存中进行排序 而是直接写 , 最终合并为一个 task 一个最终文件
所以和普通模式 IDE 区别在于 :
第一,磁盘写机制不同;
第二,不会进行排序。也就是说,启用该机制的最大好处在于, shuffle write 过程中,不需要进行数据的排序操作,也就节省掉了 这部分的性能开销。

  1. SortShuffle对比HashShuffle可以减少很多的磁盘 文件,以节省网络IO的开销
  2. SortShuffle主要是对磁盘文件进行合并来进行文件 数量的减少, 同时两类Shuffle都需要经过内存缓冲区 溢写磁盘的场景。所以可以得知, 尽管Spark是内存迭 代计算框架, 但是内存迭代主要在窄依赖中. 在宽依赖(Shuffle)中磁盘交互还是一个无可避免的情况. 所 以, 我们要尽量减少Shuffle的出现, 不要进行无意义的Shuffle计算。
相关推荐
噜噜噜阿鲁~23 分钟前
python学习笔记 | 10.0、面向对象编程
笔记·python·学习
IT研究所38 分钟前
AI 时代下的知识管理:从 Claude 的“复盘”能力看生成式 AI价值
大数据·运维·数据库·人工智能·科技·低代码·自然语言处理
nashane1 小时前
HarmonyOS 6学习:Web组件同层渲染事件处理与智能长截图实现
前端·学习·harmonyos·harmonyos 5
云边云科技_云网融合1 小时前
企业出海的 “数字丝绸之路“:SD-WAN 如何重构全球网络竞争力
大数据·运维·网络·人工智能
JZC_xiaozhong1 小时前
2026年深圳企业如何统一管理ERP、MES、OA权限?身份识别与访问管理高效方案
大数据·运维·自动化·企业数据安全·数据集成与应用集成·权限治理·多系统权限管理
nashane1 小时前
HarmonyOS 6学习:Web组件同层渲染触摸事件与长截图拼接实战
前端·学习·harmonyos·harmonyos 5
189228048612 小时前
NV243美光MT29F32T08GWLBHD6-24QJES:B
大数据·服务器·人工智能·科技·缓存
stars-he2 小时前
基于 Python 的 DTMF 双音多频信号识别实验
学习·dsp开发
2601_958548482 小时前
利川避暑民宿舒适化运营:客流增长策略深度解析
大数据
明明跟你说过2 小时前
Kafka 与 Elasticsearch 的集成应用案例深度解析
大数据·elk·elasticsearch·kafka·big data·bigdata