安装SparkR

时间:2015-07-02 12:38:25

标签: r apache-spark sparkr

我有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

我如何解决这个问题?

4 个答案:

答案 0 :(得分:66)

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

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

您应该选择与您使用的Spark版本对应的标记(上面的v2.x.x)。您可以使用project pageGitHub API或直接从R找到完整的代码列表:

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.22.3.12.4.0的讨论,并且随后删除了这些包(例如,参见SparkR was removed from CRAN on 2018-05-01CRAN SparkR package removed?)。结果原帖中列出的方法仍然是最可靠的解决方案。

编辑3

好的,SparkR再次备份CRAN,v2.4.1。 install.packages('SparkR')应该再次工作(镜子可能需要几天才能反映出来)

答案 1 :(得分:10)

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接口。

答案 2 :(得分:3)

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

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

    wget https://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 su

         

    sudo useradd username

         

    sudo echo用户名:密码| chpasswd的

    1. 对于某个rstudio Web控制台,您需要创建从您的计算机到EMR主节点的SSH隧道,如下所示:
    2.   

      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安装到主节点中,如下所示:

      3.   

        sudo yum update

             

        sudo yum -y install libcurl-devel

        1. 解决权限问题:
        2.   

          sudo -u hdfs hadoop fs -mkdir / user /

               

          sudo -u hdfs hadoop fs -chown / user /

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

            spark-submit --version

                 

            导出SPARK_HOME ='/ usr / lib / spark /'

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

              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中/火花')

                   

              sc< - spark_connect(master =“yarn-client”)

答案 3 :(得分:0)

现在CRAN的存储库中提供了SparkR的2.1.2和2.3.0版本,您可以按以下方式安装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,以使该软件包正常工作。