RStudio服务器后端连接错误

RStudio服务器端连接发生错误如果你超过RBackends最大数量的集群。

写的arvind.ravish

去年发表在:2022年5月20日

问题

你会得到一个错误当使用RStudio服务器后端连接。

系统误差。setenv (EXISTING_SPARKR_BACKEND_PORT =系统(paste0 (“wget问:——“http://localhost: 6061 / ? type = \“com.databricks.backend.common.rpc.DriverMessages StartRStudioSparkRBackend美元\”- post数据= ' {\“@class \”, \“com.databricks.backend.common.rpc.DriverMessages StartRStudioSparkRBackend美元\”,\“guid \”, \“:错误的长度参数

如果你查看集群司机和工人日志(AWS|Azure|GCP),您将看到一条消息大约超过RBackends的最大数量。

21/08/09 15:02:26信息RDriverLocal: 312。RDriverLocal。3 f6d80d6 - 70 - c4 - 4101 b50f - 2530 - df112ea2:超过最大RBackends数量限制:200 21/08/09 15:03:55信息RDriverLocal: 313。RDriverLocal。3 f6d80d6 - 70 - c4 - 4101 b50f - 2530 - df112ea2:超过最大RBackends数量限制:200 21/08/09 15:04:06信息RDriverLocal: 314。RDriverLocal。3 f6d80d6 - 70 - c4 - 4101 b50f - 2530 - df112ea2:超过最大RBackends数量限制:200 21/08/09 15:13:42信息RDriverLocal: 315。RDriverLocal。3 f6d80d6 - 70 - c4 - 4101 b50f - 2530 - df112ea2:超过最大RBackends数量限制:200

导致

200年砖集群配置RBackends默认情况下。

如果你超过这个极限,你得到一个错误。

解决方案

您可以使用一个init脚本增加的软限制RBackends可供使用。

此示例代码创建一个init脚本集限制为400RBackends在集群上。

% scala val initScriptContent = s”“| # !/bin/bash |猫> /砖/共同/ conf / rbackend_limit。参看< < EOL | {| databricks.daemon.driver。maxNumRBackendsPerDriver = 400 |} |停产”“状态”。stripMargin dbutils.fs.put (“dbfs: / / < init-script-folder > / set_rbackend砖。sh”initScriptContent,真的)
删除

信息

设置的示例代码RBackends限制为400。你可以调整这个数字。你不应该超过500RBackends

安装新创建的init脚本作为一个集群级init脚本(AWS|Azure|GCP)。

你需要的完整路径的位置脚本(dbfs: /砖/ < init-script-folder > / set_rbackend.sh)。

安装后重新启动集群init脚本。

验证解决方案

你可以确认更改成功运行此示例代码在一个笔记本。

% r图书馆(magrittr) SparkR::: callJStatic (“com.databricks.backend.daemon.driver。RDriverLocal”、“getDriver”, (DB_GUID_, envir = .GlobalEnv)) % > % SparkR::: callJMethod(“相依”)% > % SparkR::: callJMethod (“maxNumRBackendsPerDriver”)

这段代码运行时,返回当前RBackends限制在集群上。

最佳实践

确保您退出RStudio当你使用它完成。这终止R会话和清洁RBackend

如果RStudio服务器被杀,或者RSession意外终止,清理步骤可能不会发生。

砖上面9.0运行时,自动清理闲置RBackend会话。

这篇文章有用吗?