sparklyr + rsparkling:连接到群集时出错

时间:2017-02-14 13:32:51

标签: r hadoop apache-spark sparklyr sparkling-water

有一段时间我使用sparklyr包使用代码连接到公司的Hadoop集群:

library(sparklyr)

Sys.setenv(SPARK_HOME="/opt/spark/")
Sys.setenv(HADOOP_CONF_DIR="/etc/hadoop/conf.cloudera.yarn")
Sys.setenv(JAVA_HOME="/usr/lib/jvm/jre")

system('kinit -k -t user.keytab user@xyz')

sc <- spark_connect(master="yarn",
                config = list(
                  default = list(
                    spark.submit.deployMode= "client",
                    spark.yarn.keytab= "user.keytab",
                    spark.yarn.principal= "user@xyz",
                    spark.executor.instances= 20, 
                    spark.executor.memory= "4G",
                    spark.executor.cores= 4,
                    spark.driver.memory= "8G")))

一切正常,但是当我尝试使用类似的代码添加rsparkling包时:

library(h2o)
library(rsparkling)
library(sparklyr)

options(rsparkling.sparklingwater.version = '2.0')

Sys.setenv(SPARK_HOME="/opt/spark/")
Sys.setenv(HADOOP_CONF_DIR="/etc/hadoop/conf.cloudera.yarn")
Sys.setenv(JAVA_HOME="/usr/lib/jvm/jre")

system('kinit -k -t user.keytab user@xyz')

sc <- spark_connect(master="yarn",
                config = list(
                  default = list(
                    spark.submit.deployMode= "client",
                    spark.yarn.keytab= "user.keytab",
                    spark.yarn.principal= "user@xyz",
                    spark.executor.instances= 20, 
                    spark.executor.memory= "4G",
                    spark.executor.cores= 4,
                    spark.driver.memory= "8G")))

我收到错误:

  

生效错误(代码):
  连接到sparkidr到端口(8880)的sessionid(9819)时失败:Sparklyr网关没有响应   在60秒后检索端口信息路径:   /opt/spark-2.0.0-bin-hadoop2.6/bin/spark-submit参数: - class,   sparklyr.Backend, - 包装,   &#39; ai.h2o:汽泡 - 水 - core_2.11:2.0&#39;,&#39; ai.h2o:汽泡 - 水 - ml_2.11:2.0&#39;&#39; AI。 H 2 O:汽泡 - 水 - repl_2.11:2.0&#39 ;,   &#39; /usr/lib64/R/library/sparklyr/java/sparklyr-2.0-2.11.jar' ;,8880,9819

     

----输出日志----
  常春藤默认缓存设置为:/opt/users/user/.ivy2/cache存储在以下包中的jar文件夹:   /opt/users/user/.ivy2/jars :: loading settings :: url =   罐子:文件:/opt/spark-2.0.0-bin-hadoop2.6/jars/ivy-2.4.0.jar /org/apache/ivy/core/settings/ivysettings.xml   ai.h2o#sparkling-water-core_2.11作为依赖项添加   ai.h2o#sparkling-water-ml_2.11作为依赖项添加   ai.h2o#sparkling-water-repl_2.11添加为依赖::解析   dependencies :: org.apache.spark#spark-submit-parent; 1.0       confs:[默认]

     

----错误日志----
  另外:警告消息:1:在if(nchar(config [[e]])== 0)中找到&lt; - FALSE:条件有长度   1,只使用第一个元素2:在if(nchar(config [[e]])== 0)中找到&lt; - FALSE:条件有长度   1,只使用第一个元素

我是sparkclusters的新手,并不确定现在该做什么。任何帮助将非常感激。我的第一个想法是在jar方面遗漏了sparkling water的{​​{1}}个文件,我是对的吗?

1 个答案:

答案 0 :(得分:1)

您需要使用Sparkling Water的确切版本号:

options(rsparkling.sparklingwater.version = '2.0.5')

或者您可以直接从http://h2o.ai/download下载二进制版本的Sparkling Version,解压缩并替换上面的语句:

options(rsparkling.sparklingwater.location = "/tmp/sparkling-water-assembly_2.11-2.0.99999-SNAPSHOT-all.jar")