問題
你會得到一個錯誤當使用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會話。