将 sparklyr 连接到远程 spark 连接

Connect sparklyr to remote spark connection

我想通过 sparklyr 将我的本地桌面 RStudio 会话连接到远程 spark 会话。当您在 RStudio 的 sparklyr ui 选项卡中添加新连接并选择集群时,表示您必须 运行 在集群上,或者具有与集群的高带宽连接。

谁能阐明如何建立这种联系?我不确定如何创建可重现的示例,但总的来说我想做的是:

library(sparklyr)
sc <- spark_connect(master = "spark://ip-[MY_PRIVATE_IP]:7077", spark_home = "/home/ubuntu/spark-2.0.0", version="2.0.0")

来自远程服务器。我知道会有延迟,尤其是在尝试在遥控器之间传递数据时。我也知道在实际集群上安装 rstudio-server 会更好——但这并不总是可能的,我正在寻找一个 sparklyr 选项来在我的服务器和我的桌面 RStudio 会话之间进行交互。谢谢。

sparklyr 版本 0.4 开始,不支持从 RStudio 桌面连接到远程 Spark 集群。相反,正如您提到的,推荐的方法是在 Spark 集群中安装 RStudio Server。

也就是说,sparklyr 中的 livy branch 正在探索与 Livy 的集成,这将使 RStudio 桌面能够通过 Livy 连接到远程 Spark 集群。

使用更新版本的 sparklyr(例如版本 0.9.2)可以连接到远程 Spark 集群。

这是连接到 Spark 独立 集群版本 2.3.1 的示例。 参见 Master URLs 了解其他主 URL 方案。

#install.packages("sparklyr")
library(sparklyr)

# You have to install locally (on the driver where RStudio is running) the same Spark version
spark_v <- "2.3.1"
cat("Installing Spark in the directory:", spark_install_dir())
spark_install(version = spark_v)

sc <- spark_connect(spark_home = spark_install_find(version=spark_v)$sparkVersionDir, 
                    master = "spark://ip-[MY_PRIVATE_IP]:7077")

sc$master
# "spark://ip-[MY_PRIVATE_IP]:7077"

我已经写了一篇关于这个主题的 post

我终于设法使用 Livy

将我的本地 R 连接到 Spark 集群的云实例(在我的案例中是 HD insights)

在 sparklyr 的 spark_connect 中,有一个连接到 livy 的选项。 (Method = "livy")

sc <- spark_connect(master = "https://<clustername>.azurehdinsight.net/livy/",
                     method = "livy", config = livy_config(
                       username = "<admin>",
                       password = rstudioapi::askForPassword("Livy password:")))