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

相关推荐
B站计算机毕业设计之家几秒前
大数据项目:基于python电商平台用户行为数据分析可视化系统 电商订单数据分析 Django框架 Echarts可视化 大数据技术(建议收藏)
大数据·python·机器学习·数据分析·django·电商·用户分析
正在走向自律5 分钟前
Oracle迁移实战:从兼容性挑战到平滑过渡金仓数据库的解决方案
数据库·oracle·国产数据库·金仓数据库·兼容性挑战·迁移成本
测试人社区—667912 分钟前
GPT-4开启“软件工程3.0“新时代:测试工程师的智能化转型指南
大数据
QAQalone12 分钟前
MySQL实际项目中常用的 DDL 模板
数据库·mysql
数据猿15 分钟前
【“致敬十年”系列】专访中国商联数据委会长邹东生:以“最小化场景闭环”实现AI真价值
大数据·人工智能
web3.088899919 分钟前
唯品会商品详情 API 数据解析
大数据
赵渝强老师21 分钟前
【赵渝强老师】国产金仓数据库的体系架构
数据库·oracle·架构
B站计算机毕业设计之家28 分钟前
大数据:基于python唯品会商品数据可视化分析系统 Flask框架 requests爬虫 Echarts可视化 数据清洗 大数据技术(源码+文档)✅
大数据·爬虫·python·信息可视化·spark·flask·唯品会
沧海寄馀生28 分钟前
Apache Hadoop生态组件部署分享-Spark
大数据·hadoop·分布式·spark·apache
专注数据的痴汉30 分钟前
「数据获取」中华人民共和国乡镇行政区划简册(2010-2017)(2011-2012缺失)
大数据·人工智能·信息可视化