问题
你会得到一个错误当使用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,真的)
安装新创建的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会话。