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

相关推荐
闵孚龙9 分钟前
AI Agent多智能体编排爆款解析:Claude Code Subagent、Fork、Coordinator、Bridge远程执行与安全治理全拆解
大数据·人工智能·安全
城事漫游Molly28 分钟前
统计研究路线图:PPDAC问题解决循环
大数据·人工智能·论文笔记·科研统计
iiiiyu1 小时前
⾯向对象和集合编程题
java·大数据·开发语言·数据结构·编程语言
Lyon198505281 小时前
【握剑之手】——《文字定律》随笔
大数据·人工智能·ai写作
Elastic 中国社区官方博客1 小时前
Kubernetes 可观测性:用于更安全 EKS 故障排查的 MCP 专家 agents
大数据·elasticsearch·搜索引擎·云原生·容器·kubernetes·全文检索
常常有1 小时前
AI智能知识库问答系统(基于 FastAPI和Dify)
python·mysql·fastapi
黎阳之光2 小时前
智慧水利堤坝监测:全域实景技术实现河流、水库隐患预警
大数据·人工智能·物联网·安全·数字孪生
云边云科技_云网融合2 小时前
大模型聚合时代:云边云科技 AI 网关轻量化赋能企业落地
大数据·运维·网络·人工智能
诸葛李2 小时前
openUBMC集成构建
大数据·elasticsearch·搜索引擎
Waay2 小时前
MySQL基础高频考点
运维·mysql·adb