目录

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
RLG_星辰37 分钟前
第二章日志分析-mysql应急响应笔记
运维·数据库·mysql·应急响应·玄机
Java陈序员2 小时前
邻家小铺!一个基于 SpringBoot 和 Vue 的商城系统!
vue.js·spring boot·mysql
LaughingZhu2 小时前
PH热榜 | 2025-04-03
前端·数据库·人工智能·经验分享·mysql·开源·产品运营
苹果酱05672 小时前
KisFlow-Golang流式实时计算案例(四)-KisFlow在消息队列MQ中的应用
java·vue.js·spring boot·mysql·课程设计
GalaxyPokemon2 小时前
MySQL基础 [三] - 数据类型
数据库·mysql
遇见火星3 小时前
日常真实工作环境,Mysql常用操作命令,笔记!
android·mysql·adb·常用命令·mysql日志
互联网之声4 小时前
“清凉海岛·创享一夏” 海南启动旅游线路产品创意设计大赛
大数据·网络·旅游
luoluoal4 小时前
Java项目之基于ssm的个性化旅游攻略定制系统(源码+文档)
java·mysql·mybatis·ssm·源码
天狼12225 小时前
java 正则表达式优化
java·mysql·正则表达式