【问题标题】:H2O failed to connect in RH2O 无法在 R 中连接
【发布时间】:2020-10-04 05:55:12
【问题描述】:

由于 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 运行时环境 (build 14.0.1+7) Java HotSpot(TM) 64 位服务器 VM(内部版本 14.0.1+7,混合模式,共享)

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

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

【问题讨论】:

  • 错误很明显。在加载h2o 之前,您必须安装适当的java 版本,并可能将h2o 指向适当的目录。对于后者,在初始化 h2o 之前完全卸载更高版本可能更简单。

标签: r implementation h2o


【解决方案1】:

您使用的是 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"))

【讨论】:

    【解决方案2】:

    按照latest stable release(当前为rel-zeno/2)的安装说明,我能够让 H2O 与 Java 14 一起工作:

    # 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()
    

    如果您想要更多recent release,则需要更新最后install.packages 行中的repos 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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 2016-06-23
      • 2017-11-01
      • 2020-09-10
      • 2018-03-03
      • 2018-03-07
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多