将 sparklyr 连接到远程 spark 连接

Posted

技术标签:

【中文标题】将 sparklyr 连接到远程 spark 连接【英文标题】:Connect sparklyr to remote spark connection 【发布时间】:2017-02-09 11:04:38 【问题描述】:

我想通过 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 会话之间进行交互。谢谢。

【问题讨论】:

尝试使用 spark_connect 是否报错? 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

这是连接到 Spark 独立集群版本2.3.1 的示例。 有关其他主 URL 方案,请参阅 Master URLs。

#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。

【讨论】:

【参考方案3】:

我终于设法使用Livy 将我的本地 R 连接到 Spark 集群的云实例(在我的例子中是高清洞察)

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

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

【讨论】:

以上是关于将 sparklyr 连接到远程 spark 连接的主要内容,如果未能解决你的问题,请参考以下文章

将大型数据集缓存到 spark 内存中时“超出 GC 开销限制”(通过 sparklyr 和 RStudio)

如何使用 sparklyr 为 Apache Spark 实现 Stanford CoreNLP 包装器?

sparklyr 可以与部署在纱线管理的 hadoop 集群上的 spark 一起使用吗?

使用 sparklyr 时无法在本地 Spark 连接中加载 .csv 数据

Spark 2 连接到 Hive MetaStore [重复]

如何通过 JMX 远程连接到 Dataproc 上的 Spark 工作器