【问题标题】:Increase h2o.init timeout增加 h2o.init 超时
【发布时间】:2017-09-16 19:47:04
【问题描述】:

如何在通过 R 启动 h2o 服务器时增加 h2o 启动 超时? 我有一个多节点 AWS EC2 集群,我在每个节点上启动一个单独的 h2o 服务器。启动后,某些 EC2 节点可能会有点慢,我宁愿增加超时时间,也不愿在这些节点上重新运行 h2o 初始化代码。

我目前正在做的事情是

library(doParallel)
library(foreach)

workers=parallel::makePSOCKcluster(workerIPs,master=masterIP)
registerDoParallel(workers)

foreach(i=seq_along(workers),.inorder=FALSE,.multicombine=TRUE) %dopar% {
  library(h2o)
  h2o.init(nthreads=-1)
  paste0(capture.output(h2o.clusterStatus()),collapse="\n")
}

如果h2o.init(nthreads=-1) 产生超时,慢速节点将在h2o.clusterStatus() 抛出错误。

顺便说一句:我使用的是 h2o v 3.10.4.4,我使用的是 ubuntu 16.04。

【问题讨论】:

  • 您的目标是运行多个 H2O 集群(每个节点上一个)吗?或者只是跨多个节点的单个 H2O 集群?通常我们看到人们在做后者(如此处所述:github.com/h2oai/h2o-3/tree/master/ec2),所以我只是好奇。
  • 目前,我希望每个节点有一个 H2O 集群。我自己实现了 CV 和超参数搜索算法——所以目前每个节点一个 h2o 服务器最适合我。
  • 好的,知道了。您能否在您的 h2o.init() 调用之前添加一个 Sys.sleep(10),以便在启动工作节点和在其上启动 H2O 集群之间留出一些时间,还是我在这里遗漏了什么?
  • 工人通常在几分钟前启动。但是,首次访问磁盘块时,新创建的实例(来自快照)的初始 EBS 磁盘 I/O 可能非常低。我想这就是h2o.init 有时会失败的原因。

标签: r h2o


【解决方案1】:

所以,我查看了 github 上的 h2o 源代码,似乎没有 timeout 参数(R 和底层 java 代码中都没有)。有一个名为 session_timeoutjava 参数,但我认为这不适用于我的问题。

所以我做的是这样的:

foreach(i=seq_along(workers),.inorder=FALSE,.multicombine=TRUE) %dopar% {
  library(h2o)
  startCounter=1
  startCounterMax=3
  while(inherits(clusterStatus<-try({
      h2o.init(nthreads=-1)
      capture.output(h2o.clusterStatus())
    },silent=TRUE),"try-error")&(startCounter<=startCounterMax)) {
    startCounter=startCounter+1
  }
  if (startCounter>startCounterMax) stop("Failed to start h2o server for ",
                                         startCounterMax," successive times")

  return(clusterStatus)
}

不是很好,但确实可以。

【讨论】:

    【解决方案2】:

    如果您尝试形成一个由多个 H2O 节点组成的集群(例如,由 3 个 h2o 节点组成的集群,每台机器一个节点)并且您想等待指定的时间,那么您可以在 Java 代码中尝试它 - water.H2O.waitForCloudSize(3, 50 * 1000/*ms*/); 我假设 R 中也应该有相应的参数可用。

    【讨论】:

    • 我没有看到这通过R 接口暴露出来。
    猜你喜欢
    • 2019-04-08
    • 2015-04-28
    • 2010-10-31
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2021-09-06
    • 2015-03-27
    相关资源
    最近更新 更多