【问题标题】:Trying to Connect R to Spark using Sparklyr尝试使用 Sparklyr 将 R 连接到 Spark
【发布时间】:2017-02-25 21:46:34
【问题描述】:

我正在尝试使用 Sparklyr 将 R 连接到 Spark。

我按照 rstudio 博客的教程进行操作

我尝试使用安装 sparklyr

  • install.packages("sparklyr") 一切正常,但在另一篇文章中,我看到 sparklyr_0.4 版本中存在错误。所以我按照说明使用

  • 下载了开发版
  • devtools::install_github("rstudio/sparklyr") 也很好,现在我的 sparklyr 版本是 sparklyr_0.4.16。

我按照 rstudio 教程下载和安装 spark 使用

spark_install(version = "1.6.2")

当我尝试第一次使用

连接到 spark 时
sc <- spark_connect(master = "local")

出现以下错误。

Created default hadoop bin directory under: C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\tmp\hadoop
Error: 
To run Spark on Windows you need a copy of Hadoop winutils.exe:
1. Download Hadoop winutils.exe from:
   https://github.com/steveloughran/winutils/raw/master/hadoop-2.6.0/bin/
2. Copy winutils.exe to C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\tmp\hadoop\bin
Alternatively, if you are using RStudio you can install the RStudio Preview Release,
which includes an embedded copy of Hadoop winutils.exe:
  https://www.rstudio.com/products/rstudio/download/preview/**

然后我下载了 winutils.exe 并将其放在 C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\tmp\hadoop\bin - 这是在说明中给出的。

我尝试再次连接到 spark。

sc <- spark_connect(master = "local",version = "1.6.2")

但我收到以下错误

Error in force(code) : 
Failed while connecting to sparklyr to port (8880) for sessionid (8982): Gateway in port (8880) did not respond.
Path: C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\bin\spark-submit2.cmd
Parameters: --class, sparklyr.Backend, --packages, "com.databricks:spark-csv_2.11:1.3.0", "C:\Users\rkaku\Documents\R\R-3.2.3\library\sparklyr\java\sparklyr-1.6-2.10.jar", 8880, 8982
Traceback:
  shell_connection(master = master, spark_home = spark_home, app_name = app_name, version = version, hadoop_version = hadoop_version, shell_args = shell_args, config = config, service = FALSE, extensions = extensions)
  start_shell(master = master, spark_home = spark_home, spark_version = version, app_name = app_name, config = config, jars = spark_config_value(config, "spark.jars.default", list()), packages = spark_config_value(config, "sparklyr.defaultPackages"), extensions = extensions, environment = environment, shell_args = shell_args, service = service)
  tryCatch({
gatewayInfo <- spark_connect_gateway(gatewayAddress, gatewayPort, sessionId, config = config, isStarting = TRUE)
}, error = function(e) {
abort_shell(paste("Failed while connecting to sparklyr to port (", gatewayPort, ") for sessionid (", sessionId, "): ", e$message, sep = ""), spark_submit_path, shell_args, output_file, error_file)
})
  tryCatchList(expr, classes, parentenv, handlers)
  tryCatchOne(expr, names, parentenv, handlers[[1]])
  value[[3]](cond)
  abort_shell(paste("Failed while connecting to sparklyr to port (", gatewayPort, ") for sessionid (", sessionId, "): ", e$message, sep = ""), spark_submit_path, shell_args, output_file, error_file)

---- Output Log ----
The system cannot find the path specified.

有人可以帮我解决这个问题吗?从过去的两周开始,我一直在处理这个问题,没有太多帮助。非常感谢任何可以帮助我解决此问题的人。

【问题讨论】:

  • 我会省略前两段——你不需要为提问而道歉。看起来你自己解决了第一个问题——你至少克服了关于需要 winutils 的错误,所以我不确定这在这一点上是否真的相关。专注于您要解决的问题,即第二个错误。
  • @Caleb :感谢您查看我的问题。我将删除我最初的 cmets

标签: r apache-spark sparklyr


【解决方案1】:

我终于弄清楚了这个问题,我很高兴自己能做到这一切。显然有很多谷歌搜索。

问题在于 Winutils.exe。

R studio 没有给出放置 winutils.exe 的正确位置。从我的问题复制 - 粘贴 winutils.exe 的位置是 C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\tmp\hadoop\bin。

但是在谷歌搜索时,我发现将在临时文件夹中创建一个日志文件来检查问题,如下所示。

java.io.IOException: 找不到可执行文件C:\Users\rkaku\AppData\Local\rstudio\spark\Cache\spark-1.6.2-bin-hadoop2.6\bin\bin\winutils .exe 在 Hadoop 二进制文件中

日志文件中给出的位置与 R Studio 建议的位置不同 :) 最后在 spark 日志文件引用的位置插入 winutils.exe 后,我能够成功连接到 Sparklyr ...... wohooooooo !!!!我不得不说,仅仅连接到 Spark 就浪费了 3 周的时间,但一切都是值得的 :)

【讨论】:

    【解决方案2】:

    请注意任何代理

        Sys.getenv("http_proxy")
        Sys.setenv(http_proxy='')
    

    帮我搞定了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多