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

相关推荐
秋刀鱼 ..18 分钟前
第三届教育发展与社会科学国际学术会议 (EDSS 2026)
大数据·python·计算机网络·数学建模·制造
BJ_Bonree20 分钟前
Bonree ONE 发布直通车| 如何利用核心链路,快速排查定位系统故障?
大数据·运维·人工智能
科士威传动27 分钟前
微型导轨的类型性能差异与场景适配需求
大数据·运维·人工智能·科技·机器人·自动化
ZePingPingZe28 分钟前
Spring Boot + MySQL读写分离实现方案
spring boot·mysql·adb
一颗宁檬不酸29 分钟前
Oracle序列从2开始而不是从1开始的常见原因及解决方法
数据库·oracle
Leon-Ning Liu35 分钟前
Oracle 19c RAC ASM 密码文件恢复方案三:将补丁升级至 19.8 版本后,利用 asmcmd --nocp credfix 进行修复
数据库·oracle
honder试试1 小时前
Centos7从0-1安装部署Clickhouse验证与Mysql实时同步
数据库·mysql·clickhouse
雨大王5121 小时前
汽车零部件企业如何通过OEE钻取分析实现降本增效?
大数据·人工智能
Shingmc31 小时前
MySQL表的约束
数据库·mysql
EveryPossible1 小时前
地图学习练习
大数据·学习