有一段时间我使用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,只使用第一个元素
我是spark
和clusters
的新手,并不确定现在该做什么。任何帮助将非常感激。我的第一个想法是在jar
方面遗漏了sparkling water
的{{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")