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

相关推荐
实在智能RPA5 分钟前
3天变30分钟、40小时归零:跨境大卖用智能体在做什么?
大数据·人工智能·搜索引擎·实在智能·实在agent
能年玲奈喝榴莲牛奶7 分钟前
系统规划与管理师-第一章-考点记忆
大数据·数据库·软考·系统规划与管理师·系规
basketball6161 小时前
软考中级网络工程师 第6章 网络安全 备考总结
大数据·网络·web安全·网络工程师·软考
m0_527034332 小时前
异步任务审核系统设计:消息队列、超时重试与失败补偿
java·大数据·开发语言
Shawn Dev2 小时前
MySQL Binlog 数据误删除恢复完全指南
数据库·mysql·elasticsearch
oradh2 小时前
Oracle ADRCI 诊断数据工具总结
数据库·oracle·adrci
只说证事2 小时前
大数据专业考研还是考证比较好
大数据·考研
用户3610588626122 小时前
Spark 核心之 Spark-SortShufflebypass 原理深度剖析
大数据·spark
陈卿诺语3 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
sql·mysql·adb
南城以南溫暖如初1473 小时前
社区健身小程序开发流程详解:技术选型与实施经验分享
java·经验分享·spring boot·mysql·vue·apache