现在太多的执行上下文是开放的

减少笔记本用来限制执行上下文的数量需要你的工作。

写的akash.bhat

去年发表在:2023年5月31日

问题

你遇到以下错误消息当你试图把一个笔记本一个集群或工作失败。

运行结果不可用:工作太多的失败与错误消息执行上下文现在是开放的。(限制目前设置为150)

导致

砖创建一个执行上下文,当你把一个笔记本一个集群。REPL的执行上下文包含国家环境对于支持的每种编程语言:Python, R, Scala和SQL。

集群的最大数量为150的执行上下文。145用户repl,其余五分配内部系统repl保留后台操作的上下文。一旦达到这个阈值时,你可以不再附加一个笔记本到集群。

删除

信息

不可能查看当前的执行上下文使用。

解决方案

确保你没有残疾auto-eviction集群火花配置(AWS|Azure|GCP)。

如果存在以下行火花配置,auto-eviction是禁用的。删除这条线重新启用auto-eviction:

spark.databricks.chauffeur。enableIdleContextTracking假

最佳实践

  • 使用集群工作而不是一个交互式集群。集群工作为每个任务的最好方法是避免的执行上下文。集群工作应该用于隔离和可靠性。
  • 减少单独的笔记本用来减少所需的执行上下文。

临时解决方法

作为一个短期的解决方案,您可以使用一个集群级init脚本增加执行上下文限制从150年到175年。

删除

警告

如果你增加执行上下文的限制,司机内存压力可能会增加。你不应该用这个作为一个长期的解决方案。

创建初始化脚本

在笔记本中运行这个示例脚本创建集群的init脚本。

% scala val initScriptContent = s”“| # !/bin/bash |猫> /砖/共同/ conf / set_exec_context_limit。参看< < EOL | {| rb = 170 |} |停产”“状态”。stripMargin dbutils.fs.put (“dbfs: / < path-to-init-script > / set_exec_context_limit。sh”initScriptContent,真的)

记得init脚本的路径。你需要它在配置集群。

配置初始化脚本

按照文档来配置一个集群级init脚本(AWS|Azure|GCP)。

设置目的地作为DBFS并指定init脚本的路径。使用相同的路径,你使用的示例脚本。

在配置init脚本之后,重新启动集群。


这篇文章有用吗?