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

相关推荐
xianjian09121 小时前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql
RoboWizard2 小时前
本地AI主机批量部署 高效存储支撑全场景配置
大数据·人工智能
dingzd952 小时前
产品同质化严重如何用材质升级做出溢价空间
大数据·人工智能·跨境电商·内容营销
@PHARAOH2 小时前
WHAT - AI 时代下的候选人
大数据·前端·人工智能
Data-Miner2 小时前
50页精品PPT | 数据安全运营体系建设方案
大数据·数据分析
eggwyw2 小时前
MySQL 与 Redis 的数据一致性问题
数据库·redis·mysql
weixin_436182422 小时前
PLC 与 DCS 国产化报告获取:工控产业情报查找指南
大数据·人工智能·国产plc
金智维科技官方3 小时前
制造业如何用Ki-AgentS智能体平台实现设备巡检自动化?
大数据·运维·人工智能
Bdygsl3 小时前
MySQL(5)—— 聚合查询/分组查询/联合查询
数据库·mysql
lhbian3 小时前
开启mysql的binlog日志
数据库·mysql