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

相关推荐
智星云算力3 分钟前
算力民主化的 “临界点”:RTX 5090 专属算力平台专项测评与租用实战分析
大数据·人工智能·gpu算力·智星云·gpu租用
我是发哥哈5 分钟前
主流AI培训机构能力横向评测:核心维度与选型要点解析
大数据·人工智能·学习·机器学习·ai·chatgpt·aigc
DROm RAPS6 分钟前
保姆级教程 !SQL Server数据库的备份和还原
数据库·oracle
QYR-分析8 分钟前
电气化浪潮下,电池液体冷却器行业发展全景解析
大数据·人工智能
DevilSeagull11 分钟前
MySQL(1) 安装与配置
java·数据库·git·mysql·http·开源·github
一个程序猿老马15 分钟前
005、Git三板斧(1):git add - 将文件纳入版本管理
大数据·git·elasticsearch
Guheyunyi18 分钟前
智能巡检管理系统实现安全与效率双飞跃
大数据·人工智能·安全·架构·能源
cy_cy00219 分钟前
从旁观到参与,体感游戏赋能教育展厅
大数据·科技·人机交互·交互·软件构建
IT观测20 分钟前
物联网时代的“连接者”:解码西安摩高互动的软硬一体化开发实践
大数据·人工智能
ApacheSeaTunnel22 分钟前
SeaTunnel + AI:一句“我要做什么”,能不能直接变成一份能跑的配置?
大数据·ai·开源·数据集成·seatunnel·数据同步