记一次spark中task卡顿引发的血案
记一次spark中task卡顿引发的血案 背景介绍: 由于spark-steaming中其中一个job中某个task卡顿,导致平均30s的平均处理时间的task,整整耗费了10个小时。 问题的排查差不多花费了一周的时间,可以说为解决这个问题,同时掺杂其他工程化的事情,真的一周心情都不好了。 这里特此记录一下吧,给自己做个了断 !嘿嘿 ~ 前言提要 : (1)当前spark采用粗粒度的执行方式,资源申请都是一次性的完成;不存在后期申请不到资源的情况; (2)数据量很小,每秒100条左右,基本不存在数据倾斜的问题,但是执行的业务流程很复杂; (3)采用spark on mesos的组粒度模式运行 1. 问题描述: 2019年12月24日ML处理30个文件时间很异常超过10h; xx中部分task处理时间超长,导致整个任务job失败的问题; 1.1 spark ui 卡顿情况 查看spark ui的监控发现,如下图: 图 1 其中的spark中部分task已经卡顿超过10个小时 备注:spark中其中一个task已经卡顿超过10个小时,其他task很快就完成了; 1.2查看服务器日志: 没有发现明显的异常日志, 19/12/27 01:25:45 INFO ContextCleaner: Cleaned RDD 93 19/12/27 01:25:45 INFO