繁体   English   中英

活动任务在 Spark UI 中是一个负数

[英]Active tasks is a negative number in Spark UI

使用,我看到了:

在此处输入图片说明

您看到活动任务是负数(总任务数与已完成任务数的差值)。

这个错误的根源是什么?


我有很多执行者的节点。 然而,似乎有一个任务似乎一直处于空闲状态(我没有看到任何进展),而另一个相同的任务正常完成。


这也是相关的:该邮件我可以确认正在创建许多任务,因为我使用的是 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.

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

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

  1. ResourceManager UI 显示负值
  2. NodeManager 报告负面的运行容器

当(许多)执行程序在失败后重新启动时,通常会发生此行为。


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

确切地说,在通过 Python 使用 Spark 准备我的大数据中,我有 > 400k 分区。 我使用了data.coalesce(1024) ,如重新分区 RDD 中所述,并且我能够绕过该 Spark UI 错误。 你看,分区是分布式计算和 Spark 中一个非常重要的概念。

在我的问题中,我也使用了 1-2k 个执行程序,所以它一定是相关的。

注意:分区太少,您可能会遇到此Spark Java 错误:大小超过 Integer.MAX_VALUE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM