Spark任务在独立群集上随机阻塞

时间:2016-09-13 08:07:13

标签: apache-spark

我们有一个在Spark Standalone上运行的非常复杂的应用程序。 在某些情况下,其中一个工作人员的任务在RUNNING状态下随机无限制地阻塞。

Blocked tasks

额外信息:

  • 日志中没有任何错误
  • 在调试中使用logger运行,我没有看到任何相关的消息(我看到任务开始时但是没有活动)
  • 如果我只有一名工人
  • ,工作正常
  • 同一个工作可以在适当的时间内第二次执行而​​没有任何问题
  • 我没有任何可能导致某些任务延迟的大分区。
  • 在spark 2.0中我已经从RDD迁移到数据集,我有同样的问题
  • 在火花1.4中,我能够通过开启猜测来克服这个问题,但是在火花2.0中,阻挡任务来自不同的工作人员(而在1.4中我只对1名工人进行了阻挡任务)所以推测并非固定我的问题。
  • 我在更多环境中遇到问题,所以我不认为它与硬件有关。

有没有人经历过类似的事情?关于如何确定问题的任何建议?

非常感谢!

稍后编辑:我认为我面临的问题与此处所述相同:Spark Indefinite Waiting with "Asked to send map output locations for shuffle"和此处:http://apache-spark-user-list.1001560.n3.nabble.com/Spark-stalling-during-shuffle-maybe-a-memory-issue-td6067.html但两者都没有可行的解决方案。

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

1 个答案:

答案 0 :(得分:0)

通过为每个遗嘱执行人分配一个核心来解决这个问题。如果我有超过1核心的执行程序,则问题再次出现。我还没有理解为什么会发生这种情况,但对于那些有类似问题的人来说,他们可以试试这个。