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

相关推荐
LZY16191 分钟前
MySQL下载安装及配置
数据库·mysql
Data-Miner7 分钟前
12万字WORD | 企业智慧数字化运营平台重构建设项目实施技术方案
大数据·重构
代码匠心8 分钟前
从零开始学Flink:实时数仓与维表时态Join实战
大数据·flink·kafka·flink sql
智慧化智能化数字化方案44 分钟前
财务数字化——解读农化集团业财一体化数字化转型解决方案【附全文阅读】
大数据·人工智能
琅琊榜首20201 小时前
AI+编程实操:小说高效改编短剧的全流程指南
大数据·人工智能
jiaozi_zzq2 小时前
2026年大数据与财务管理专业就业岗位全解析与进阶指南
大数据·数据分析·证书·财务
海南java第二人2 小时前
Flink运行时组件深度解析:Java工程师的架构设计与实战指南
java·大数据·flink
WJX_KOI2 小时前
保姆级教程:Apache Flink CDC(standalone 模式)部署 MySQL CDC、PostgreSQL CDC 及使用方法
java·大数据·mysql·postgresql·flink
AI实战架构笔记2 小时前
大数据预测分析在房地产行业的市场动态监测
大数据·ai
实时数据2 小时前
DPI深度数据包检测 监测用户浏览搜索行为 分析在线活动 频繁访问的购物网站或搜索的关键词 等判断其消费偏好
大数据·安全·big data