h2o 构建失败 java 15

h2o build fails with java 15

h2o 版本:h2o-3.34.0.3 (rel-zizler)

Java版本:openjdk版本“15.0.2”2021-01-19 (安装:FROM adoptopenjdk:15-jre-openj9-focal

我想使用 Java 15 构建 XGBoost 模型,但是具有相同数据的相同代码在 Java 14 上运行没有问题(openjdk 版本“14.0.2”2020-07 -14) 在 Java 15 上失败,产生以下错误消息:

water.exceptions.H2OIllegalArgumentException: Illegal argument: o of function: IcedWrapper: 
    at water.IcedWrapper.<init>(IcedWrapper.java:152) ~[h2o.jar:?]
    at water.util.TwoDimTable.set(TwoDimTable.java:254) ~[h2o.jar:?]
    at water.util.ReproducibilityInformationUtils.createNodeInformationTable(ReproducibilityInformationUtils.java:72) ~[h2o.jar:?]
    at hex.Model$Output.createReproducibilityInformationTable(Model.java:1199) ~[h2o.jar:?]
    at hex.Model$Output.<init>(Model.java:991) ~[h2o.jar:?]
    at hex.Model$Output.<init>(Model.java:973) ~[h2o.jar:?]
    at hex.tree.xgboost.XGBoostOutput.<init>(XGBoostOutput.java:16) ~[h2o.jar:?]
    at hex.tree.xgboost.XGBoost$XGBoostDriver.buildModelImpl(XGBoost.java:419) ~[h2o.jar:?]
    at hex.tree.xgboost.XGBoost$XGBoostDriver.buildModel(XGBoost.java:393) ~[h2o.jar:?]
    at hex.tree.xgboost.XGBoost$XGBoostDriver.computeImpl(XGBoost.java:379) ~[h2o.jar:?]
    at hex.ModelBuilder$Driver.compute2(ModelBuilder.java:246) ~[h2o.jar:?]
    at water.H2O$H2OCountedCompleter.compute(H2O.java:1652) ~[h2o.jar:?]
    at jsr166y.CountedCompleter.exec(CountedCompleter.java:468) ~[h2o.jar:?]
    at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263) [h2o.jar:?]
    at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974) [h2o.jar:?]
    at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477) [h2o.jar:?]
    at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [h2o.jar:?] 

我使用以下命令启动 h2o 服务器:

ENTRYPOINT /bin/bash -c "cd h2o && java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm -jar h2o.jar

有没有人遇到过类似的问题?对我来说这看起来像是版本不兼容,但根据来自此的评论,h2o 应该支持 Java 15 从版本 3.32.1.1 及更高版本。

将 Java 安装更改为 FROM openjdk:15.0.2-jdk-slim 已解决问题