JVM GC导致的shuffle文件拉取失败

在Spark作业中,有时会出现shuffle file not found的错误,这是非常常见的一个报错,有时出现这种错误以后,选择重新执行一遍,就不再报出这种错误。

JVM GC导致的shuffle文件拉取失败

出现上述问题可能的原因是Shuffle操作中,后面stage的task想要去上一个stage的task所在的Executor拉取数据,结果对方正在执行GC,执行GC会导致Executor内所有的工作现场全部停止,比如BlockManager、基于netty的网络通信等,这就会导致后面的task拉取数据拉取了半天都没有拉取到,就会报出shuffle file not found的错误,而第二次再次执行就不会再出现这种错误。

可以通过调整reduce端拉取数据重试次数和reduce端拉取数据时间间隔这两个参数来对Shuffle性能进行调整,增大参数值,使得reduce端拉取数据的重试次数增加,并且每次失败后等待的时间间隔加长。

代码清单4-1 JVM GC导致的shuffle文件拉取失败

val conf = new SparkConf()

.set(“spark.shuffle.io.maxRetries”, “60”)

.set(“spark.shuffle.io.retryWait”, “60s”)

想要了解更多关于大数据技术内容欢迎关注尚硅谷教育!

大数据项目架构

大数据HBase原理

大数据技术生态体系

大数据面试题整合

大数据的切片机制有哪些

展开阅读全文

页面更新:2024-03-23

标签:硅谷   作业   切片   间隔   架构   清单   次数   原理   机制   生态   错误   参数   文件   时间   数据   技术   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top