TheBiiigBlue 2019-02-28 16:03 采纳率: 0%
浏览 2756

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

我写了一个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任务相关知识,谢谢各位大神了。

  • 写回答

3条回答

  • 黄大爱自由 2019-12-13 08:58
    关注

    我也遇到这个问题,我初步判断是小文件太多了.一个小文件启动一个task,,然后并行处理,,,,,合并小文件应该可以解决...

    评论

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler