一次spark任务异常记录

129次阅读
没有评论

昨晚一直在运行的spark任务出现了异常,运行了这么久恰恰这个时候出现了异常。

最直观的现象就是任务出现延迟,小时级数据没有正常生成。

首先去yarn的界面看了下,发现lost node 很多,找运维确认下是不是这个问题,运维说是resource manager 没有重启,只是界面显示的问题,对任务的运行没有影响,排除这个因素之后就去看下详细的日志。

日志里面出现的错误分三类:

1、hbase 连接异常

2、java.nio异常

3、Disk Exception 看起来是硬盘问题

4、shuffle 异常

 

1、3 很快就排除了,hbase 的压力没那么大,HDFS我们还有几百个T存储资源,所以没啥问题。

剩下 2、4 其实4的问题影响最大,异常的时候是高峰期,shuffle 又是很耗资源的Operation。

但是运行这么久偏偏今天出问题不太理解。

找了Spark值班人,帮忙定位下问题,最终确认了三点:

spark.speculation

这个参数我们设置的为True, 这个参数是关于Spark推测执行机制的相关参数。此参数设定是否使用推测执行机制,如果设置为true则spark使用推测执行机制,对于Stage中拖后腿的Task在其他节点中重新启动,并将最先完成的Task的计算结果最为最终结果

其实是比较耗费资源的,建议关闭。

spark.shuffle.memoryFraction=0.2

这个参数设置的比较小,导致shuffle时内存不够,没事还是不要设置,默认0.6

最后一个参数

deploy  mode

这个参数设置为 cluster  ,之前没设置是为了看日志方便。

 

 

admin
版权声明:本站原创文章,由admin2021-05-12发表,共计666字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)