簡體   English   中英

如何捕獲火花工作者發生的異常?

[英]How to catch an exception that occurred on a spark worker?

val HTF = new HashingTF(50000)
val Tf = Case.map(row=>
    HTF.transform(row)
).cache()
val Idf = new IDF().fit(Tf)

try
{
  Idf.transform(Tf).map(x=>LabeledPoint(1,x))
}
catch {
  case ex:Throwable=>
    println(ex.getMessage)
}

這樣的代碼不起作用。

HashingTF / Idf屬於org.spark.mllib.feature。

我仍然遇到一個例外,說

org.apache.spark.SparkException: Failed to get broadcast_5_piece0 of broadcast_5

我在錯誤日志中看不到任何文件,該如何調試呢?

似乎該工作人員內存不足。

即時臨時修復:

運行應用程序而不進行緩存。

只需刪除.cache()

調試方法:

Spark UI可能具有完整的異常詳細信息。

  • 檢查舞台詳細信息

  • 在“執行程序”選項卡中檢查日志和線程轉儲

如果發現多個異常或錯誤,請嘗試按順序解決。

在大多數情況下,解決第一個錯誤將解決后續的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM