YARN上的RSparkling Spark错误(java.lang.ClassNotFoundException:water.fvec.frame)

问题描述 投票:2回答:1

我正在尝试设置我的R环境以在YARN群集上运行h2o算法。 (由于安全原因无法访问互联网 - 在R服务器上运行)

以下是我当前的环境设置:

  • spark版本:2.2.0.2.6.3.0-235(2.2)
  • master:YARN客户端
  • rsparkling版本:0.2.5
  • 苏打水:2.2.16
  • h2o版本:3.18.0.10
  • sparklyr版本:0.7.0

我检查了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) 
...

我试过的事情:

  • 按照说明here
  • 重新安装h2o软件包并重试多次
  • 尝试不同版本的h2o和苏打水(分别为3.18.0.5和2.2.11)

我确信它不会是版本错误,因为我已根据h2o_release_table()匹配它们,如图所示。请帮助或指导我找到解决方案。

r scala apache-spark h2o sparklyr
1个回答
0
投票

(问题解决了)

原来我的spark-client路径中的/ jar /目录中还有另一个sparkling-water-core_2.11-2.2.16.jar文件,因此被直接作为Classpath Entries的一部分读入,导致冲突。 (通过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) 

有点尴尬回答我自己的问题,但我希望这可以帮助其他有需要的人!

© www.soinside.com 2019 - 2024. All rights reserved.