【问题标题】:Installing of SparkR安装 SparkR
【发布时间】:2015-09-20 00:04:50
【问题描述】:

我有最新版本的 R - 3.2.1。现在我想在 R 上安装 SparkR。执行后:

> install.packages("SparkR")

我回来了:

Installing package into ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘SparkR’ is not available (for R version 3.2.1)

我还在我的机器上安装了 Spark

Spark 1.4.0

我该如何解决这个问题?

【问题讨论】:

标签: r apache-spark sparkr


【解决方案1】:

您可以直接从 GitHub 存储库安装:

if (!require('devtools')) install.packages('devtools')
devtools::install_github('apache/spark@v2.x.x', subdir='R/pkg')

您应该选择与您使用的 Spark 版本相对应的标签(上面的v2.x.x)。您可以在 project page 上找到完整的标签列表,或者直接从 R 中使用 GitHub API:

jsonlite::fromJSON("https://api.github.com/repos/apache/spark/tags")$name

如果您从a downloads page 下载二进制包,R 库位于R/lib/SparkR 子目录中。可用于直接安装SparkR。例如:

$ export SPARK_HOME=/path/to/spark/directory
$ cd $SPARK_HOME/R/pkg/
$ R -e "devtools::install('.')"

您还可以将 R lib 添加到 .libPaths(取自 here):

Sys.setenv(SPARK_HOME='/path/to/spark/directory')
.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths()))

最后,您无需任何额外步骤即可使用sparkR shell:

$ /path/to/spark/directory/bin/sparkR

编辑

根据Spark 2.1.0 Release Notes 未来应该可以在 CRAN 上使用:

使用 Apache Spark 版本构建的独立可安装包。我们将很快将其提交给 CRAN。

您可以关注SPARK-15799查看进度。

编辑 2

虽然 SPARK-15799 已被合并,但满足 CRAN 要求被证明具有挑战性(参见例如关于 2.2.2、2.3.1、2.4.0 的讨论),并且随后删除了包(参见例如 @987654330 @、CRAN SparkR package removed?)。由于原帖中列出的结果方法仍然是最可靠的解决方案。

编辑 3

好的,SparkR 再次备份到 CRAN,v2.4.1。 install.packages('SparkR') 应该会再次起作用(镜子可能需要几天时间才能反映这一点)

【讨论】:

  • 另请注意,以上内容不安装文档。据我所知,您需要克隆 repo 和 follow the instructions here
  • SparkR 再次不在 CRAN 中。
【解决方案2】:

SparkR 不仅需要一个 R 包,还需要拉入整个 Spark 后端。当您想要升级 SparkR 时,您正在升级 Spark,而不仅仅是 R 包。如果您想使用 SparkR,那么这篇博文可能会对您有所帮助:https://blog.rstudio.org/2015/07/14/spark-1-4-for-rstudio/。

不过应该​​说:现在你可能想参考 sparklyr 包,因为它使这一切变得容易得多。

install.packages("devtools")
devtools::install_github("rstudio/sparklyr")
library(sparklyr)
spark_install(version = "1.6.2")
spark_install(version = "2.0.0")

它还提供了比 SparkR 更多的功能以及对dplyr 的非常好的界面。

【讨论】:

  • 感谢您分享升级攻略!
  • 感谢您的意见。我也会更新到最新版本。
【解决方案3】:

在尝试使用 Spark 2.0.0 在 EMR 中使用 SparkR 时,我也遇到了类似的问题。我将在此处发布我安装 rstudio 服务器、SparkR、sparklyr 并最终连接到 EMR 集群中的 spark 会话的步骤:

  1. 安装 rstudio 服务器: EMR 集群启动并运行后,使用用户 'hadoop@' ssh 到主节点并下载 rstudio 服务器

wgethttps://download2.rstudio.org/rstudio-server-rhel-0.99.903-x86_64.rpm

然后使用yum install安装

sudo yum install --nogpgcheck rstudio-server-rhel-0.99.903-x86_64.rpm

最后添加一个用户来访问 rstudio Web 控制台:

须藤苏

sudo useradd 用户名

sudo echo 用户名:密码 |密码

  1. 要访问 rstudio Web 控制台,您需要创建一个从您的机器到 EMR 主节点的 SSH 隧道,如下所示:

ssh -NL 8787:ec2-emr-master-node-ip.compute-1.amazonaws.com:8787 hadoop@ec2-emr-master-node-ip.compute-1.amazonaws.com&

  1. 现在打开任何浏览器并输入 localhost:8787 以进入 rstudio Web 控制台并使用 username:password 组合登录。

  2. 要安装所需的 R 包,您需要先将 libcurl 安装到主节点,如下所示:

须藤百胜更新

sudo yum -y 安装 libcurl-devel

  1. 解决权限问题:

sudo -u hdfs hadoop fs -mkdir /user/

sudo -u hdfs hadoop fs -chown /user/

  1. 在 EMR 中检查 Spark 版本并设置 SPARK_HOME:

火花提交--版本

export SPARK_HOME='/usr/lib/spark/'

  1. 现在在 rstudio 控制台中安装 SparkR,如下所示:

install.packages('devtools')

devtools::install_github('apache/spark@v2.0.0', subdir='R/pkg')

install.packages('sparklyr')

库(SparkR)

库(sparklyr)

Sys.setenv(SPARK_HOME='/usr/lib/spark')

sc

【讨论】:

    【解决方案4】:

    SparkR 2.1.2 和 2.3.0 版本现已在 CRAN 的存储库中提供,您可以按如下方式安装 2.3.0 版本:

    install.packages("https://cran.r-project.org/src/contrib/Archive/SparkR/SparkR_2.3.0.tar.gz", repos = NULL, type="source")
    

    注意:你必须先从download下载安装对应版本的Apache Spark,这样包才能正常工作。

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2015-09-01
      • 2015-06-28
      • 2015-08-16
      • 1970-01-01
      相关资源
      最近更新 更多