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

相关推荐
黎阳之光1 小时前
黎阳之光:深耕视频孪生核心领域 构筑数字孪生全域数智新标杆
大数据·人工智能·算法·安全·数字孪生
NINGMENGb1 小时前
舆情升温前的那30分钟:Infoseek系统如何改写公关游戏规则
大数据·运维·舆情监测·舆情监测系统
郭龙_Jack1 小时前
自有广告系统设计与实践
大数据·人工智能
phltxy2 小时前
Seata 2.2.0:下载、部署与 Nacos + MySQL 集成教程
数据库·mysql·spring cloud·微服务
人道领域2 小时前
3.45亿人的免费午餐终结:豆包开收500元月费,AI算力正在吃掉字节跳动
大数据·人工智能
加勒比海带662 小时前
人工智能前沿——「试问当前国外AI大模型哪家强?」
大数据·开发语言·图像处理·人工智能
经济元宇宙2 小时前
人像摄影培训全流程体验:从入门到就业的真实反馈
大数据·人工智能
WL_Aurora2 小时前
HDFS基础编程常用命令
大数据·hadoop·hdfs
大大大大晴天2 小时前
浅聊Hadoop集群的主流安全方案(LDAP+Kerberos+Ranger)
大数据·hadoop
为儿打call2 小时前
基于 Git Hooks + LLM 实现根据自然语言规则进行 Code Review
大数据·llm