活动任务是Spark UI中的负数

时间:2016-08-15 22:31:41

标签: python hadoop apache-spark distributed-computing bigdata

使用时,我看到了这一点:

enter image description here

您可以看到活动任务是否定号码(已完成任务的总任务差异)。

此错误的来源是什么?

我有许多执行者的节点。但是,似乎有一项似乎空闲的任务(我没有看到任何进展),而另一项相同的任务正常完成。

这也是相关的:mail我可以确认正在创建许多任务,因为我使用的是1k或2k执行程序。

我得到的错误有点不同:

16/08/15 20:03:38 ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListeners is too slow and cannot keep up with the rate at which tasks are being started by the scheduler.
16/08/15 20:07:18 WARN TaskSetManager: Lost task 20652.0 in stage 4.0 (TID 116652, myfoo.com): FetchFailed(BlockManagerId(61, mybar.com, 7337), shuffleId=0, mapId=328, reduceId=20652, message=
org.apache.spark.shuffle.FetchFailedException: java.util.concurrent.TimeoutException: Timeout waiting for task.

2 个答案:

答案 0 :(得分:7)

S. Owen的Spark-dev邮件列表中回答,有几个与此问题相关的JIRA票证,例如:

  1. ResourceManager UI showing negative value
  2. NodeManager reports negative running containers
  3. 当(许多)执行程序在失败后重新启动时,通常会发生此行为。

    当应用程序使用太多执行程序时,也会发生此行为。使用coalesce()来解决此问题。

    确切地说,在Prepare my bigdata with Spark via Python中,我有> 400k分区。我使用data.coalesce(1024),如重新分区RDD中所述,我能够绕过Spark UI错误。你看,分区是分布式计算和Spark的一个非常重要的概念。

    在我的问题中,我也使用了1-2k执行者,因此它必须是相关的。

    注意:分区太少,您可能会遇到此Spark Java Error: Size exceeds Integer.MAX_VALUE

答案 1 :(得分:6)

这是一个Spark问题。当执行程序在失败后重新启动时会发生。已经创建了相同的JIRA问题。您可以从https://issues.apache.org/jira/browse/SPARK-10141链接获取有关相同内容的更多详细信息。