Aeve_imp
TheBiiigBlue
2019-02-28 16:03

Spark Task卡住的问题、Scheduler Delay 很长的问题

  • 机器学习
  • scala
  • 人工智能

我写了一个label encoder的demo,逻辑很简单,从hive中读一张表(46.5M大小,很小很小),
然后对多列进行label encoder(label encoder不支持多列,使用了pipeline操作),然后从中抽取字典,最后写入hive中。

但是有个问题,就是在我执行到pipeline后面的action时,提交的作业会卡在这很久,不知道是什么原因,不可能是数据倾斜,这么小的数据。。。我对spark的调度只知表面,不知深层,请大神指点一二,谢谢各位大神。

下面是代码和ui界面:

代码部分

图片说明

spark ui 相关界面

图片说明

count at NullValueCheck 是校验一下空值,这个直接读取hive表,count一下,countByValue是StringIndexer类中的方法。他们的执行时间还可接受。

NullValueCheck的DAG图界面:
图片说明

下面是countByValue方法的DAG图界面:
图片说明

下面是count at LabelEncoder这了,这里提交了pipeline任务,然后就卡在这了:

图片说明

下面两张是count at LabelEnocder job的DAG:
图片说明
图片说明

下面是这个stages界面,可以看到scheduler delay很长,task time 没有,任务卡在这了:

图片说明

下面是executor界面供参考:
图片说明

下面是这个卡住的用的总时长和后面保存表操作,可以看到这个提交pipeline任务的时间跟别的不在一个等级上,里面因为scheduler delay卡住很长时间:
图片说明

烦请各位大神帮忙看下,通过这次指导我一定能从中获取到更多spark任务相关知识,谢谢各位大神了。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答

为你推荐

换一换