大数据IMF传奇行动绝密课程第50课:Spark性能优化第六季
2016-09-04 14:11
495 查看
Spark性能优化第六季
1、关于Shuffle的再次说明2、Shuffle性能优化
一、Shuffle性能调优
1、问题:Shuffle output file lost?
如果GC尤其是Full GC产生通常会导致线程停止工作,这个时候下一个Stage的Task在默认情况下会尝试重试来获取数据,一般重试3次每次重试的时间为5s,也就是说默认情况下15s内如果还是无法抓到数据的话,就会出现Shuffle output file lost等情况,进而会导致Task重试,甚至会导致Stage重试,最严重的是会导致Application失败;在这个时候,首先就要采用高效的内存数据结构和序列化机制、JVM的调优来减少Full GC的产生;
2、在Shuffle的时候Reducer端获取数据会有一个指定大小的缓存空间,如果内存足够大的情况下,可以适当的增大该缓存空间,否则会spill到磁盘上, 影响效率。
此时可以调整(增大)spark.reducer.maxSizeInFlight 48m(调到128m以上)
3、在ShuffleMapTask端通常也会增大Map任务的写磁盘的缓存spark.shuffle.file.buffer,默认情况下是32k
4、调整获取Shuffle数据的重试次数,默认3次,通常建议增大重试次数;调整获取Shuffle数据的重试时间间隔,默认5s,强烈建议提高该时间 spark.shuffle.io.retryWait 5s
5、在reducer端做Aggregation的时候,默认是20%的内存用来做Aggregation,如果超出了这个大小就会溢出到磁盘上,建议调大百分比来提高性能
相关文章推荐
- 大数据IMF传奇行动绝密课程第52课:Spark性能优化第八季
- 大数据IMF传奇行动绝密课程第115课:超大规模spark性能优化本质思考
- 大数据IMF传奇行动绝密课程第119课:Spark Streaming性能优化:如何在生产环境下应对流数据峰值巨变
- 大数据IMF传奇行动绝密课程第47课:Spark性能优化第三季
- 大数据IMF传奇行动绝密课程第51课:Spark性能优化第七季
- 大数据IMF传奇行动绝密课程第116课:Spark Streaming性能优化:如何在毫秒内处理大吞吐量和数据波动比较大的流计算
- 大数据IMF传奇行动绝密课程第48课:Spark性能优化第四季
- 大数据IMF传奇行动绝密课程第49课:Spark性能优化第五季
- 大数据IMF传奇行动绝密课程第53课:Spark性能优化第九季 Spark Tungsten内存使用彻底解密
- 大数据IMF传奇行动绝密课程第54课:Spark性能优化第十季之Spark统一内存管理
- 大数据IMF传奇行动绝密课程第118课:Spark Streaming性能优化:如何获得和持续使用足够的集群计算资源
- 大数据IMF传奇行动绝密课程第45课:Spark性能优化第一季
- 大数据IMF传奇行动绝密课程第44课:真正的Spark功力:性能优化!
- 大数据IMF传奇行动绝密课程第120课:Spark Streaming性能优化:如何在End-to-End生产环境下安全高效地把结果数据存入HBase中
- 大数据IMF传奇行动绝密课程第117课:Spark Streaming性能优化:如何最大程度的确保Spark Cluster和Kafka连接的稳定性
- 大数据IMF传奇行动绝密课程第27课:Spark on Yarn彻底解密
- 大数据IMF传奇行动绝密课程第26课:Spark Runtime内幕揭秘
- 大数据IMF传奇行动绝密课程第26课:Spark Runtime内幕揭秘
- 大数据IMF传奇行动绝密课程第13课:Spark内核架构解密
- 大数据IMF传奇行动绝密课程第23课:从物理执行的角度透视Spark Job