我正在尝试设置R环境以在YARN群集上运行h2o算法。 (由于安全原因,无法访问Internet-在R Server上运行)
这是我当前的环境设置:
我检查了h2o_version表中的所有版本映射,但是在运行代码时仍然出现此错误:
options(rsparkling.sparklingwater.version = "2.2.16")
options(rsparkling.sparklingwater.location = "path to my sparkling water.jar")
Sys.setenv(SPARK_HOME = "path to my spark")
Sys.setenv(SPARK_VERSION = "2.2.0")
Sys.setenv(HADOOP_CONF_DIR = "...")
Sys.setenv(MASTER = "yarn-client")
library(sparklyr)
library(h2o)
library(rsparkling)
sc = spark_connect(master = Sys.getenv("SPARK_MASTER"), spark_home = Sys.getenv("SPARK_HOME"), version = Sys.getenv("SPARK_VERSION"))
h2o_context(sc)
R Server ERROR output:
Error: java.lang.ClassNotFoundExecption: water.fvec.Frame
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
...
我尝试过的事情:
我确定这不会是版本错误,因为我已经根据h2o_release_table()对其进行了匹配,如图所示。请帮助或指导我解决问题。
答案 0 :(得分:0)
(已解决问题)
原来在我的spark-client路径的 / jar / 目录中还有另一个 sparkling-water-core_2.11-2.2.16.jar 文件,因此被直接读取为类路径条目的一部分,从而导致冲突。 (通过Spark UI Environment选项卡确认)我在Spark Classpath上玩得很顺利,所以我不得不请求删除文件。
这样做之后,问题已解决。我还用不同版本的苏打水JAR和h2o R软件包进行了测试。 (sw 2.2.11&h2o 3.18.0.5,sw 2.2.19&h2o 3.20.0.2)
options(rsparkling.sparklingwater.version = "2.2.16")
options(rsparkling.sparklingwater.location = "path to my sparkling water.jar")
Sys.setenv(SPARK_HOME = "path to my spark")
Sys.setenv(SPARK_VERSION = "2.2.0")
Sys.setenv(HADOOP_CONF_DIR = "...")
Sys.setenv(MASTER = "yarn-client")
library(sparklyr)
library(h2o)
library(rsparkling)
sc = spark_connect(master = Sys.getenv("SPARK_MASTER"),
spark_home = Sys.getenv("SPARK_HOME"),
version = Sys.getenv("SPARK_VERSION"))
h2o_context(sc)
回答我自己的问题有点尴尬,但是我希望这可以帮助其他有需要的人!