【问题标题】:Spark stuck at removing broadcast variable (probably)Spark 卡在删除广播变量(可能)
【发布时间】:2016-11-13 15:25:37
【问题描述】:

Spark 2.0.0-预览版

我们有一个使用相当大的广播变量的应用程序。我们在一个大型 EC2 实例上运行它,所以部署是客户端模式。广播变量是一个巨大的Map[String, Array[String]]

saveAsTextFile 的末尾,文件夹中的输出似乎是完整和正确的(除了.crc 文件仍然存在)但是 spark-submit 过程被卡住了,似乎删除了广播变量。卡住的日志如下所示:http://pastebin.com/wpTqvArY

在执行 saveAsTextFile 后,我的最后一次跑步持续了 12 小时 - 只是坐在那里。我在驱动进程上做了一个 jstack,大多数线程都停了:http://pastebin.com/E29JKVT7

全文:

我们在 Spark 1.5.0 中使用了这段代码,它可以工作,但随后数据发生了变化,并且某些内容不再适合 Kryo 的序列化缓冲区。增加它没有帮助,所以我不得不禁用 KryoSerialiser。再次测试它 - 它挂起。切换到 2.0.0-preview - 似乎是同样的问题。

鉴于几乎没有 CPU 活动且日志中没有输出,我不太确定发生了什么,但输出并没有像以前那样最终确定。

不胜感激,谢谢。

【问题讨论】:

  • 您能解决这个问题吗?我也一样。我尝试清理 sparkContext 但没有帮助!任何帮助表示赞赏!

标签: scala apache-spark


【解决方案1】:

我有一个非常相似的问题。

我正在从 spark 1.6.1 更新到 2.0.1,完成后我的步骤挂了。

最后,我设法通过在任务末尾添加sparkContext.stop() 来解决它。

不知道为什么需要它,但它解决了我的问题。 希望这可以帮助。

ps:这个帖子让我想起了这个https://xkcd.com/979/

【讨论】:

  • 哈。我用不同的版本对它进行了复古测试,并且可以在所有 Spark 版本上重现它。它是如何工作的一直是个谜。最终完全删除了广播并获得了一个更慢但更可预测的版本
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
相关资源
最近更新 更多