第143课: Spark面试经典系列之Reduce端OOM和shuffle file not found如何解决?

来源:互联网 发布:苏州天魂网络面试题 编辑:程序博客网 时间:2024/05/16 14:15

第143课:  Spark面试经典系列之Reduce端OOM和shuffle file not found如何解决?
1 reduce端的OOM如何解决?
2 shuffle file not found如何解决?

 

 

 

 

 

 

reducer:默认堆大小为20%
cache:每个Task有缓存,缓存层的大小可以设置为24M,48M,96M。。。

reducer端 OOM的解决方案:
如原来是48M,分配的内存有限,会出现过多的对象,造成OOM,因此调小缓存大小,就改为24M,让程序先跑起来,但调小会造成shuffle的次数变多了,造成性能降低了。这个需后来再优化,慢慢再调,增加executor,加内存。

spark.reducer.maxSizeInFlight

 

单机版本的OOM,搞一个很大的数组集,就会造成oom,那把数组改小就可以了。

 

2 shuffle file not found如何解决?诡异,不太容易复现,可能遇到了gc,系统忙,没有理会拉文件。。spark.shuffle.io.maxRetries设置为3次,spark.shuffle.io.maxRetries每次5秒钟。15秒钟还没有拉掉数据,就会出现shuffle file notfound

 

 

 

shuffle file not found解决办法:调整这2个参数:
spark.shuffle.io.maxRetries 调大30次,或50次;
spark.shuffle.io.retryWait 设置30s 就象拜访一个人,他比较忙,那就多等一会儿。
如果15分钟还抓不到, 那就有问题了

 

 

 

 

 

0 0
原创粉丝点击