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

相关推荐
a***592619 分钟前
MySQL数据可视化实战指南
数据库·mysql·信息可视化
乐迪信息19 分钟前
乐迪信息:智能识别船舶种类的AI解决方案
大数据·网络·人工智能·算法·无人机
Maggie_ssss_supp20 分钟前
LINUX-MySQL多表查询
数据库·mysql
2501_9209538622 分钟前
目前有实力的6S咨询公司推荐
大数据·人工智能
lxp19974126 分钟前
Mysql短课题全手稿
数据库·mysql
m0_7482546628 分钟前
Perl 变量类型
spark·scala·perl
云境天合小科普33 分钟前
红外温度传感器:实现预防性维护
大数据
我是一只小青蛙88833 分钟前
Python实战:Kingbase数据库高效操作指南
数据库·oracle
龙亘川1 小时前
【课程5.7】代码编写:违建处置指标计算(违建发现率、整改率SQL实现)
数据库·oracle·智慧城市·一网统管平台
Dxy12393102161 小时前
深度解析 Elasticsearch 8.13.4 范围查询 DSL
大数据·elasticsearch