【问题标题】:unable to connect to sparklyr from RStudio无法从 RStudio 连接到 sparklyr
【发布时间】:2019-04-15 14:27:25
【问题描述】:

我正在尝试从 RStudio 连接到 spark。目前我们正在使用运行 Spark (2.2) 的 Cloudera Hadoop 发行版。我测试了边缘节点的所有内容,我能够创建 Spark 上下文并执行我的查询。直到昨天,RStudio 一切正常,突然我们遇到了 RStudio 的问题。

library(dplyr)    
library(sparklyr)   
config <- spark_config()    
config$spark.driver.memory <- "8G"    
config$spark.executor.memory <- "8G"    
config$spark.executor.executor <- "2"    
config$spark.executor.cores <- "4"    
config$spark.kryoserializer.buffer.max <- "2000m"    
config$spark.driver.maxResultSize <- "4G"    
config$spark.akka.frameSize <- "768"    
sc <- spark_connect(master="yarn-client",     
version="2.2.0",    
 config=config,     
spark_home = '/opt/cloudera/parcels/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354/lib/spark2')
Error in force(code) : 
  Failed while connecting to sparklyr to port (8880) for sessionid (14727): Sparklyr gateway did not respond while retrieving ports information after 60 seconds
    Path: /opt/cloudera/parcels/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354/lib/spark2/bin/spark-submit
    Parameters: --class, sparklyr.Shell, '/usr/lib64/R/library/sparklyr/java/sparklyr-2.2-2.11.jar', 8880, 14727
    Log: /tmp/RtmpoNJQEH/file151b437c0313b_spark.log


---- Output Log ----
18/11/12 13:54:50 INFO sparklyr: Session (14727) is starting under 127.0.0.1 port 8880
18/11/12 13:54:50 INFO sparklyr: Session (14727) found port 8880 is not available
18/11/12 13:54:50 INFO sparklyr: Backend (14727) found port 8884 is available
18/11/12 13:54:50 INFO sparklyr: Backend (14727) is registering session in gateway
18/11/12 13:54:50 INFO sparklyr: Backend (14727) is waiting for registration in gateway

---- Error Log ----

我也验证了 sparklyr 的版本,它是 0.9.2

请问有什么问题可以告诉我吗?

【问题讨论】:

    标签: r apache-spark rstudio sparklyr rstudio-server


    【解决方案1】:

    你可以试试

    library(httr)
    library(sparklyr)
    Sys.setenv(SPARK_HOME = '/opt/cloudera/parcels/SPARK2/lib/spark2')
    Sys.setenv(YARN_CONF_DIR = '/opt/cloudera/parcels/SPARK2/lib/spark2/conf/yarn-conf/')
    config <- list()
    config=c(config,list("sparklyr.shell.deploy-mode"="client"))
    httr::with_config(
      config = httr::authenticate(user=":", password="", type="gssnegotiate"),
    sc <- spark_connect(master = "yarn-client", version = "2.2.0", config = config))
    sc
    

    如果您启用了 SSL 和 Kerberos,您可能需要使用此选项

    library(httr)
    library(sparklyr)
    set_config(config(cainfo = "/opt/cloudera/security/global_cacerts.pem"))
    Sys.setenv(SPARK_HOME = '/opt/cloudera/parcels/SPARK2/lib/spark2')
    Sys.setenv(YARN_CONF_DIR = '/opt/cloudera/parcels/SPARK2/lib/spark2/conf/yarn-conf/')
    config <- list()
    config=c(config,list("sparklyr.shell.keytab"="/PATH/PATH.keytab",
    "sparklyr.shell.principal"="user@DOMAIN.COM",
    "sparklyr.shell.deploy-mode"="client"
    ))
    httr::with_config(
      config = httr::authenticate(user=":", password="", type="gssnegotiate"),
    sc <- spark_connect(master = "yarn-client", version = "2.2.0", config = config))
    sc
    

    注意:将 cainfo 替换为 pem 格式的根 CA 路径,在 sparklyr.shell.keytab 中指定用户密钥表,在 sparklyr.shell.principal 中指定 UPN(用户主体名称)

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 2017-02-11
      • 2016-02-11
      • 2018-05-24
      • 2013-08-15
      • 2018-04-24
      • 2019-04-29
      • 2020-01-24
      相关资源
      最近更新 更多