一段时间以来,我使用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")))

我收到错误消息:



我是sparkclusters的新手,不确定现在该怎么做。任何帮助将不胜感激。我的第一个念头是在jar端缺少sparkling watercluster文件,对吗?

最佳答案

您需要使用苏打水的确切版本号:
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")

09-07 21:58