H2O无法在R中连接

3

由于Java版本的问题,我无法在R中启动h2o,并收到以下错误消息

H2O尚未运行,现在正在启动...

注意:如果出现错误,请查看以下日志文件: C:\Users\Vaibhav\AppData\Local\Temp\RtmpMBUt0r\file1db069d01678/h2o_Vaibhav_started_from_r.out C:\Users\Vaibhav\AppData\Local\Temp\RtmpMBUt0r\file1db02fcb36fc/h2o_Vaibhav_started_from_r.err

java版本 "14.0.1" 2020-04-14 Java(TM) SE Runtime Environment (build 14.0.1+7) Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

开始启动H2O JVM并连接: ............................................................诊断HTTP请求: HTTP状态码: -1 HTTP错误消息: 无法连接到本地主机端口54321:连接被拒绝

错误输出: 只支持Java 8、9、10、11、12和13,系统版本为14.0.1 Error in h2o.init(nthreads = -1, max_mem_size = "4g") : H2O启动失败,停止执行


1
错误非常明显。在加载h2o之前,您必须安装适当的Java版本,并可能将h2o指向适当的目录。对于后者,最好在初始化h2o之前完全卸载较新的版本,这样可能更简单。 - Oliver
2个回答

0

您正在使用Java 14版本,该版本目前在H2O中尚未得到官方支持。

有一个JIRA用于跟踪Java 14集成:https://0xdata.atlassian.net/browse/PUBDEV-7647

在H2O中,有一个属性可以覆盖此默认设置,这将让您自行承担风险使用Java 14与H2O。这可以通过在启动H2O时设置sys.ai.h2o.debug.allowJavaVersions属性来完成。

  • 如果手动启动,请使用java -Dsys.ai.h2o.debug.allowJavaVersions=14 -jar h2o.jar
  • 从Python中使用:h2o.init(jvm_custom_args=["sys.ai.h2o.debug.allowJavaVersions", "14"])
  • 从R中使用:h2o.init(jvm_custom_args=c("sys.ai.h2o.debug.allowJavaVersions", "14"))

0

我按照最新稳定版本 (目前为rel-zeno/2) 的安装说明成功地在 Java 14 上运行了 H2O:

# The following two commands remove any previously installed H2O packages for R.
if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }

# Next, we download packages that H2O depends on.
pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}

# Now we download, install and initialize the H2O package for R.
install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-zeno/2/R")

# Finally, let's load H2O and start up an H2O cluster
library(h2o)
h2o.init()

如果您想要更新的版本,则需要在最后一个install.packages行中更新存储库URL。

在尝试上述方法之前,当我尝试了@pavel-pscheidl的答案时,我遇到了以下错误:

> h2o.init(jvm_custom_args=c("sys.ai.h2o.debug.allowJavaVersions", "14"))

H2O is not running yet, starting it now...

Note:  In case of errors look at the following log files:
    /var/folders/nx/pn7rnnx96f184jt2sdtm52_00000gp/T//RtmpTz7jEz/file88837ecffee3/h2o_username_started_from_r.out
    /var/folders/nx/pn7rnnx96f184jt2sdtm52_00000gp/T//RtmpTz7jEz/file88839672a20/h2o_username_started_from_r.err

openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

Starting H2O JVM and connecting: ............................................................Diagnostic HTTP Request:
   HTTP Status Code: -1
HTTP Error Message: Failed to connect to localhost port 54321: Connection refused
 
Error Output:
   Error: Could not find or load main class sys.ai.h2o.debug.allowJavaVersions
   Caused by: java.lang.ClassNotFoundException: sys.ai.h2o.debug.allowJavaVersions 
Error in h2o.init(jvm_custom_args = c("sys.ai.h2o.debug.allowJavaVersions",  : 
  H2O failed to start, stopping execution.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接