Apache spark Spark tasks在独立群集上随机阻塞

Apache spark Spark tasks在独立群集上随机阻塞,apache-spark,Apache Spark,我们有一个在Spark单机版上运行的相当复杂的应用程序。 在某些情况下,其中一个工人的任务在运行状态下随机阻塞无限长的时间 额外信息: 日志中没有任何错误 在调试中使用logger运行时,我没有看到任何相关消息(我看到任务何时启动,但没有活动) 如果我只有一个工人,工作就可以了 在适当的时间内,同一作业可以在没有任何问题的情况下第二次执行 我没有任何可能导致某些任务延迟的真正大的分区 在spark 2.0中,我已经从RDD转移到了数据集,我也遇到了同样的问题 在spark 1.4中,我可以通

我们有一个在Spark单机版上运行的相当复杂的应用程序。 在某些情况下,其中一个工人的任务在运行状态下随机阻塞无限长的时间

额外信息:

  • 日志中没有任何错误
  • 在调试中使用logger运行时,我没有看到任何相关消息(我看到任务何时启动,但没有活动)
  • 如果我只有一个工人,工作就可以了
  • 在适当的时间内,同一作业可以在没有任何问题的情况下第二次执行
  • 我没有任何可能导致某些任务延迟的真正大的分区
  • 在spark 2.0中,我已经从RDD转移到了数据集,我也遇到了同样的问题
  • 在spark 1.4中,我可以通过启用推测来克服这个问题,但在spark 2.0中,阻塞任务来自不同的工作人员(而在1.4中,我只有一个工作人员执行阻塞任务),因此推测无法解决我的问题
  • 我有更多环境的问题,所以我认为这与硬件无关
有没有人经历过类似的事情?有没有关于如何识别问题的建议

非常感谢

稍后编辑:我想我面临的问题与这里描述的相同:这里:但两者都没有有效的解决方案


日志中无限重复的最后一件事是:[dispatcher-event-loop-18]DEBUG org.apache.spark.scheduler.TaskSchedulerImpl-parentName:,name:TaskSet_2,runningTasks:6

通过为每个执行器分配一个内核,我解决了这个问题。如果我有超过1个核心的执行者,问题会再次出现。我还不明白为什么会发生这种情况,但对于那些有类似问题的人,他们可以尝试一下

1)你能提取一些实际阻塞的代码吗?2) 您是否检查了GC日志3)您是否使用某种形式的线程锁定/内部多线程?1)应用程序非常复杂,我找不到导致阻塞的实际部分。2) 日志中没有问题。即使是gc/内存问题,对于同一个作业,它的行为也会类似。现在,同一个作业几乎每次都在几秒钟内完成,但它会随机阻塞。3) 没有使用其他形式的多线程/锁定机制