【大数据学习 | 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

相关推荐
武子康2 分钟前
大数据-211 逻辑回归的 Scikit-Learn 实现:max_iter、分类方式与多元回归的优化方法
大数据·后端·机器学习
lpfasd1233 分钟前
鲲鹏生态下的实时计算新选择:OmniStream深度解析与竞品横向对比
大数据·flink
数说星榆18112 分钟前
在线简单画泳道图工具 PC端无水印
大数据·论文阅读·人工智能·架构·流程图·论文笔记
1.14(java)15 分钟前
掌握数据库约束:确保数据精准可靠
java·数据库·mysql·数据库约束
启途AI15 分钟前
2026年课件制作新范式:AI PPT工具深度解析
大数据·人工智能·powerpoint·ppt
木头程序员16 分钟前
机器学习核心知识点汇总
大数据·人工智能·机器学习·kmeans·近邻算法
yhdata19 分钟前
2026年生物塑料包装行业产业链分析报告
大数据·人工智能
rchmin20 分钟前
MySQL主从复制原理详解
数据库·mysql
wxr061621 分钟前
部署Spring Boot项目+mysql并允许前端本地访问
前端·spring boot·mysql·持续部署
ws20190721 分钟前
技术革新与生态融合:AUTO TECH China 2026广州汽车电子展如何定义行业新坐标?
大数据·人工智能·科技·汽车