Spark性能优化总结
来源:互联网 发布:windows smb漏洞分析 编辑:程序博客网 时间:2024/06/05 01:13
注:
本文是根据以下两篇文章进行的总结。
https://tech.meituan.com/spark-tuning-basic.html
https://tech.meituan.com/spark-tuning-pro.html
Spark性能优化总结
1 开发调优
1.1 原则一:避免创建重复的RDD
1.2 原则二:尽可能复用同一个RDD
1.3 原则三:对多次使用的RDD进行持久化
1.4 原则四:尽量避免使用shuffle类算子
1.5 原则五:使用map-side预聚合的shuffle操作
1.6 原则六:使用高性能的算子
1.7 原则七:广播大变量
1.8 原则八:使用Kryo优化序列化性能
1.9 原则九:优化数据结构
2 资源调优
2.1 num-executors
2.2 executor-memory
2.3 executor-cores
2.4 driver-memory
2.5 spark.default.parallelism
2.6 spark.storage.memoryFraction
2.7 spark.shuffle.memoryFraction
3 数据倾斜调优
3.1 定位导致数据倾斜的代码
3.1.1 某个task执行特别慢的情况
3.1.2 某个task莫名其妙内存溢出的情况
3.2 查看导致数据倾斜的key的数据分布情况
3.3 数据倾斜的解决方案
3.3.1 使用Hive ETL预处理数据
3.3.2 过滤少数导致倾斜的key
3.3.3 提高shuffle操作的并行度
3.3.4 两阶段聚合(局部聚合+全局聚合)
3.3.5 将reduce join转为map join
3.3.6 采样倾斜key并分拆join操作
3.3.7 使用随机前缀和扩容RDD进行join
3.3.8 多种方案组合使用
4 Shuffle 调优
4.1 ShuffleManager发展概述
4.1.1 HashShuffleManager
4.1.1.1 未经优化的HashShuffleManager
4.1.1.2 优化后的HashShuffleManager
4.1.2 SortShuffleManager
4.1.2.1 普通运行机制
4.1.2.2 bypass运行机制
4.1.3 shuffle相关参数调优
4.1.3.1 spark.shuffle.file.buffer
4.1.3.2 spark.reducer.maxSizeInFlight
4.1.3.3 spark.shuffle.io.maxRetries
4.1.3.4 spark.shuffle.io.retryWait
4.1.3.5 spark.shuffle.memoryFraction
4.1.3.6 spark.shuffle.manager
4.1.3.7 spark.shuffle.sort.bypassMergeThreshold
4.1.3.8 spark.shuffle.consolidateFiles
- Spark性能优化总结
- Spark性能优化总结
- Spark性能优化总结
- Spark性能优化总结
- Spark性能优化总结
- Spark Core性能优化总结
- 总结:Spark性能优化上的一些总结
- Spark性能优化(1)
- Spark性能优化(1)
- Spark性能优化(2)
- Spark性能优化(3)
- Spark SQL性能优化
- Spark应用性能优化
- Spark性能优化2
- spark性能优化1
- spark的性能优化
- Spark性能优化之一
- spark性能优化一
- 互联网分层架构的本质
- 访问控制
- 表格
- 在阿里 AI Lab 做 NLP 高级算法专家是一种什么样的体验?
- 想学AI?没那么简单、但也没那么难!(内附技术图谱)
- Spark性能优化总结
- 【JZOJ5410】【NOIP2017提高A组集训10.22】小型耀斑
- 数据结构(线性表预习)
- 【bzoj1485:】【 [HNOI2009]有趣的数列】模任意数的卡特兰数
- NOIP模拟总结10.23-11.1
- 如何用循环方式来display LLL by reverse way
- 51nod 1617 奇偶数组 分治
- ReactNative基础(五)使用react-navigation实现页面的跳转、参数的传递(StackNavigator
- 基础