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

相关推荐
y = xⁿ2 分钟前
MySQL学习日记:关于MVCC及一些八股总结
数据库·学习·mysql
前端若水5 分钟前
Git 撤销与恢复完全指南(超级详细版)
大数据·git·elasticsearch
VBsemi-专注于MOSFET研发定制7 分钟前
共享汽车功率管理器件选型实战:空间、效率与可靠性的平衡之道
大数据·汽车
BING_Algorithm11 分钟前
JDBC核心教程
java·后端·mysql
前端若水22 分钟前
Git 可以做的所有操作(完整分类)
大数据·git·elasticsearch
财经资讯数据_灵砚智能31 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月22日
大数据·人工智能·python·信息可视化·自然语言处理
武子康33 分钟前
大数据-276 Spark MLib-深入理解Bagging与Boosting:集成学习核心算法对比与GBDT实战
大数据·后端·spark
哲霖软件42 分钟前
ERP如何帮机械企业做好精细化成本管理
大数据·非标自动化·机械设备erp
十五年专注C++开发1 小时前
HDF5: 大数据的 “超级容器“
大数据·数据库·c++·hdf5
LONGZETECH1 小时前
教育数字化转型|汽车专业仿真教学体系搭建实操指南(含避坑+案例+FAQ)
大数据·人工智能·物联网·自动驾驶·汽车·汽车仿真教学软件·汽车教学软件