Databricks 笔记本在内存作业中崩溃

Posted

技术标签:

【中文标题】Databricks 笔记本在内存作业中崩溃【英文标题】:Databricks notebooks crashes on memory job 【发布时间】:2020-09-28 04:38:33 【问题描述】:

我正在运行一些操作来在 azure databricks 上聚合大量数据(约 600gb)。我最近注意到笔记本崩溃并且数据块返回以下错误。相同的代码以前适用于较小的 6 节点集群。将它升级到 12 个节点后,我开始得到这个,我怀疑这是一个配置问题。

请帮忙,我使用分区号=200 的默认 spark 配置,我的节点上有 88 个执行程序。


Thanks
Internal error, sorry. Attach your notebook to a different cluster or restart the current cluster.
java.lang.RuntimeException: abort: DriverClient destroyed
    at com.databricks.backend.daemon.driver.DriverClient.$anonfun$poll$3(DriverClient.scala:381)
    at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:307)
    at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:41)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
    at com.databricks.threading.NamedExecutor$$anon$2.$anonfun$run$1(NamedExecutor.scala:335)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
    at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:238)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
    at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:233)
    at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:230)
    at com.databricks.threading.NamedExecutor.withAttributionContext(NamedExecutor.scala:265)
    at com.databricks.threading.NamedExecutor$$anon$2.run(NamedExecutor.scala:335)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

【问题讨论】:

【参考方案1】:

我不确定成本影响,但如何在集群上启用自动缩放选项并提高 Max Workers。您也可以尝试更改 Worker Type 以获得更好的资源

【讨论】:

这也是databricks支持团队提出的解决方案之一。使用此功能,您可以了解所需的功率。

以上是关于Databricks 笔记本在内存作业中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Azure Databricks 笔记本运行详细信息

如何在 Azure 数据工厂的 Databricks 上运行 .Net spark 作业?

在 Databricks 中设置驱动程序内存配置

作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?

如何在 Databricks 笔记本的 Python 单元中使 DataFrame 可见?

Spark Databricks 本地文件 API