1、reduce task OOM? 增大reduce端的聚合操作的内存比例,我来为大家讲解一下关于spark最佳参数:spark调优的相关总结?跟着小编一起来看一看吧!
spark最佳参数:spark调优的相关总结
1、reduce task OOM?
增大reduce端的聚合操作的内存比例
增大Executor memory 内存大小 --executor-memory
减少reduce task每次拉取的数据量 设置spark.reducer.maxSizeInFlight参数
2、在shuffle阶段executor挂掉?
分析原因:(1)map task阶段的所运行的executor的内存不足,导致executor挂掉了。导致executor里面的blockmanager挂掉,不能和connctionmanager建立连接,
2.executor并没有挂掉
2.1 BlockManage之间的连接失败(map task所运行的executor正在GC)
2.2建立连接成功,map task所运行的executor正在GC
3.reduce task向Driver中的MapOutputTracker获取shuffle file位置的时候出现了问题
下面有几个重要的参数的调节:
spark.shuffle.file.buffer
默认值:32k
参数说明:该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小。将数据写到磁盘文件之前,会先写入buffer缓冲中待缓冲写满之后,才会溢写到磁盘。
调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如64k),从而减少shuffle write过程中溢写磁盘文件的次数,也就可以减少磁盘IO次数,进而提升性能。在实践中发现,合理调节该参数,性能会有1%~5%的提升。
,