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會話。

這篇文章有用嗎?