将sparklyr连接到远程火花连接

时间:2016-09-30 19:28:52

标签: r apache-spark sparklyr

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

任何人都可以阐明如何创建这种连接吗?我不知道如何创建这个可重复的例子,但一般来说我想做的是:

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服务器会更好 - 但这并不总是可行的,我正在寻找一个闪亮的选项来在我的服务器和我的桌面RStudio会话之间进行交互。谢谢。

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分: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

答案 2 :(得分:1)

我终于设法使用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:")))