2015-08-18 43 views
9

之前的情況如下:毛線清理應用程序緩存重試

  1. 紗線應用程序啓動。它被安排。
  2. 它寫了很多appcache目錄。
  3. 應用程序失敗。
  4. YARN重新啓動它。它正在等待,因爲沒有足夠的磁盤空間來安排它。磁盤被失敗運行中的appcache填滿。

如果我手動介入並終止應用程序,則會清理磁盤空間。現在我可以手動重新啓動應用程序,這很好。

我希望我能告訴自動重試清理磁盤。或者,我猜想它可以將使用過的磁盤作爲新分配的一部分,因爲它無論如何都屬於應用程序。

我會很高興地採取任何你可以提供的解決方案。我對YARN不太瞭解。這是一個Apache 0123應用程序,以yarn-client模式下的​​開始。填滿磁盤的文件是隨機溢出文件。

回答

2

所以這裏發生了什麼:

  1. 當您提交申請紗夾it creates a private local resource(應用程序緩存目錄)。
  2. 在這個目錄下spark塊管理器creates存放塊數據的目錄。如上所述:

本地目錄,在使用外部洗牌服務時不會在JVM退出時被刪除。

  • 這個目錄可以通過被清潔:

    • Shutdown hook。這是當你殺死應用程序時發生的事情。
    • Yarn DeletionService。它應該在應用程序完成時自動完成。確保yarn.nodemanager.delete.debug-delay-sec = 0。否則有一些unresolved yarn bug
  • +0

    謝謝!自從我發佈這個問題至今已有1。5年了,從那時起,我還沒有真正看到問題的表現。所以我不能輕易確認你的答案,但它是有道理的。我唯一的保留就是你說當應用程序結束時,DeletionService會清理乾淨。如果它沒有完成,只會失敗並重試?一樣? –

    相關問題