如何使用 R 防止 h2o 集群在没有通知的情况下关闭

How to prevent h2o cluster shutdown without notice using R

我是一个h2o R版本的用户,我有一个关于h2o本地集群的问题。我通过在 r,

中执行命令来设置集群

h2o.init()

但是,当我几个小时不使用集群时,集群会自动关闭。例如,我在晚上 运行 我的模型,但是当我早上回到办公室检查我的模型时。它说,

Error in h2o.getConnection() : No active connection to an H2O cluster. Did you runh2o.init()?

有没有办法解决或解决它?

如果 H2O 集群仍然是 运行,那么你的模型都还在那里(假设它们成功完成训练)。有许多方法可以检查 H2O Java 集群是否仍然 运行。在 R 中,您可以检查这些函数的输出:

h2o.clusterStatus()
h2o.clusterInfo()

在命令行(查找 Java 进程):

ps aux | grep java

如果您从 R 启动 H2O,那么您应该看到如下所示的一行:

yourusername     26215   0.0  2.7  8353760 454128   ??  S     9:41PM  21:25.33 /usr/bin/java -ea -cp /Library/Frameworks/R.framework/Versions/3.3/Resources/library/h2o/java/h2o.jar water.H2OApp -name H2O_started_from_R_me_iqv833 -ip localhost -port 54321 -ice_root /var/folders/2j/jg4sl53d5q53tc2_nzm9fz5h0000gn/T//Rtmp6XG99X

H2O 模型不存在于 R 环境中,它们存在于 H2O 集群中(一个 Java 过程)。听起来发生的事情是代表您的模型的 R 对象(实际上只是指向 H2O 集群中模型的指针)自集群断开连接以来在查找模型时遇到问题。我不知道到底发生了什么,因为您没有发布您在尝试使用 h2o.predict()h2o.performance().

时收到的错误

要取回模型,可以使用h2o.getModel()函数。您需要知道模型的 ID。如果您的模型对象(无法正常工作)仍然可以访问,那么您可以通过这种方式轻松查看模型 ID:model@model_id 您也可以在浏览器中转到 H2O Flow(通过键入:http://127.0.0.1:54321如果您使用默认值启动 H2O)并以这种方式按 ID 查看所有模型。

知道模型 ID 后,通过以下操作刷新模型:

model <- h2o.getModel("model_id")

这应该会重新建立与您的模型的连接,并且 h2o.predict()h2o.performance() 函数应该会再次工作。