如何捕获spark工作者发生的异常?

时间:2015-06-15 07:40:52

标签: scala apache-spark

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

我在错误日志中看不到任何文件,如何调试?

1 个答案:

答案 0 :(得分:0)

似乎工人的内存不足。

即时临时修复:

运行应用程序而不进行缓存。

只需删除.cache()

即可

如何调试:

可能Spark UI可能有完整的异常细节。

  • 查看舞台详情

  • 检查Executor选项卡中的日志和线程转储

如果发现多个异常或错误,请尝试按顺序解决。

解决第一个错误的大部分时间都将解决后续错误。