检测H2O实例是否已在R中运行

时间:2016-12-21 19:57:22

标签: r jvm h2o

这与R中的h2o包有关。我正在处理并行运行的多个作业,有些可能比其他作业晚。是否可以检测h2o实例是否已存在并与该实例建立连接。

我看到如果我知道某个实例已在运行,我只会h2o.init(startH2O=FALSE),但如果我不知道该怎么办?

3 个答案:

答案 0 :(得分:2)

只做h2o.init(startH2O=FALSE),如果失败,你就知道它没有运行。

(或者,您可以将自己的卷曲请求发送到端口54321,并查看是否有回复。)

当你说“并行运行多个作业”时,你的意思是一个H2O实例,它同时制作了2个以上的模型吗?或者你的意思是你在一台机器上,在不同的端口上运行2个以上的H2O实例?如果是后者,请为您的h2o.init()电话提供感兴趣的端口号(但请确保您使用的是最新版本,port arg会被忽略,直到2016年11月18日:https://github.com/h2oai/h2o-3/pull/401)< / p>

答案 1 :(得分:0)

这是您在Python中尝试h2o.init(start_h2o=False)时看到的内容。 “警告:如果您不想启动本地H2O服务器,则首选使用h2o.connect() 。”

答案 2 :(得分:0)

如果您正在寻找一种只检查状态而不会出错或退出脚本的方法,则可以使用trycatch来实现。

assign("is_h2o_running", T, .GlobalEnv)

tryCatch(
    
    expr = {
        h2o.init(startH2O=FALSE)
    },
    error = function(e){ 
        print(e)
        assign("is_h2o_running", F, .GlobalEnv)
    },
    warning = function(w){
        print(w)
    }
)

print(paste0("Is H2O running : ", is_h2o_running))