当前位置: 首页 > article >正文

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


http://www.kler.cn/a/416236.html

相关文章:

  • 如何快速上手UPR ---查看资源检测报告
  • 【论文复现】Modnet 人像抠图
  • 24.11.26 神经网络 参数初始化
  • 阿里云CDN:稳定性究竟如何?
  • set up RAGFlow on your Mac
  • VSOMEIP主要流程的时序
  • 五、基于 Guava EventBus事件驱动架构实现动态扩展的技术方案
  • [Code]R2U-Net中的眼部血管分割
  • 深度学习模型:BiLSTM (Bidirectional LSTM) - 双向长短时记忆网络详解
  • 开发需求总结19-vue 根据后端返回一年的数据,过滤出符合条件数据
  • 【趣味】斗破苍穹修炼文字游戏HTML,CSS,JS
  • FFmpeg 推流给 FreeSWITCH
  • 使用R语言进行美国失业率时空分析(包括绘图)
  • 周鸿祎再次“创业”,盯上百度
  • 关于PyTorch中的Dataloader运行异常问题以及部分图标含义
  • 代码随想录第四十五天
  • 【小白学机器学习42】进行多次抽样,样本的分布参数和总体的分布参数的关系
  • Oracle RAC的DB未随集群自动启动
  • 利用Java爬虫获取阿里巴巴中国站跨境属性的详细指南
  • Ubuntu下安装EMQTT