簡體   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