【大数据学习 | Spark调优篇】常用的shuffle优化

shuffle是一个涉及到CPU(序列化反序列化)、网络IO(跨节点数据传输)以及磁盘IO(shuffle中间结果落盘)的操作。

优化思路:

减少shuffle的数据量,减少shuffle的次数。

具体方式:

  • 能不shuffle的时候尽量不要shuffle数据,可以使用mapjoin广播变量broadcast);
  • 能用reduceByKey就不要用groupByKey,因为reducerByKey会在shuffle前进行本地聚合(map阶段进行预聚合combine),减少写出中间文件的个数,从而可以使在shuffle过程中减少磁盘IO;
  • spark2.0后已经没有HashShuffleManager,只有SortShuffleManager,SortShuffleManager内部有3种shuffle操作,可适应小中大集群。
  • 参数调节:如下

spark.reducer.maxSizeInFlight:reduce task的拉取缓存,默认48m

spark.shuffle.file.buffer:map task的写磁盘缓存,默认32k

spark.shuffle.io.maxRetries:拉取失败的最大重试次数,默认3次

spark.shuffle.io.retryWait:拉取失败的重试间隔,默认5s

相关推荐
AI营销资讯站6 分钟前
2025社群运营AI工具TOP榜:从自动化话术到AI CRM系统的终极演进
大数据·人工智能
小小王app小程序开发7 分钟前
任务悬赏小程序核心玩法 + 功能全解析:精准匹配与信任构建的变现逻辑
大数据·小程序
vivo互联网技术16 分钟前
vivo Celeborn PB级Shuffle优化处理实践
大数据·rss·celeborn·shuffle
真实的菜18 分钟前
TDengine实战:构建高性能物联网时序数据存储方案
大数据·物联网·tdengine
Mxsoft61924 分钟前
我发现OPC UA证书失效致连接中断,手动更新救场!
大数据
Q_Q51100828528 分钟前
python+django/flask+vue基于spark的西南天气数据的分析与应用系统
spring boot·python·spark·django·flask·node.js
凯子坚持 c34 分钟前
Docker实战指南:MySQL、Redis与C++环境的深度容器化部署
redis·mysql·docker
zhixingheyi_tian34 分钟前
HDFS 之 Client 调试
大数据·hadoop·hdfs
Dreamshop_AI35 分钟前
电商视觉时代:如何用Dreamshop重构“人-货-场”?
大数据·人工智能·经验分享·ai作画·aigc