【问题标题】:Multi Node H2O cluster in R not detecting other EC2 instancesR 中的多节点 H2O 集群未检测到其他 EC2 实例
【发布时间】:2020-04-13 12:32:44
【问题描述】:

我一直在努力使用 AWS EC2 实例启动和运行多节点 H2O 集群。 我已经听从了this 线程的建议,但仍然在与节点互不相见的情况下苦苦挣扎。 EC2 实例都使用我预先构建的相同 AMI,所以它们都使用相同的 h2o.jar 文件,

我还尝试了以下故障排除建议:

  • 名称集群-name
  • 宁可使用-network标志
  • 在安全组上打开端口 54321 为0.0.0.0

这是我的步骤:

1) 在同一可用区启动 AWS EC2 并获取私有 IP 和网络 cidr (172.31.0.0/20)。将ip地址放入flatfile.txt

172.31.8.210:54321
172.31.9.207:54321
172.31.13.136:54321

2)将flatfile.txt复制到我想作为节点连接的所有服务器并启动H2O

# cluster_run
library(h2oEnsemble)
library(ssh)

ips <- gsub("(.*):.*", "\\1", readLines("flatfile.txt"))

start_cluster <- function(ip){
  # Copy flatfile across
  session <- ssh_connect(paste0("ubuntu@", ip), keyfile = "mykey.pem")
  scp_upload(session, "flatfile.txt")

  # Ensure no h2o instance is already running
  out <- ssh_exec_wait(session, "sudo pkill java")

  # Start H2O cluster
  cmd <- gsub("\\s+", " ", paste0("ssh -i mykey.pem -o 'StrictHostKeyChecking no' ubuntu@", ip, 
         " 'java -Xmx20g 
         -jar /home/rstudio/R/x86_64-pc-linux-gnu-library/3.5/h2o/java/h2o.jar
         -name mycluster
         -network 172.31.0.0/20
         -flatfile flatfile.txt 
         -port 54321 &'"))
  system(cmd, wait = FALSE)

}
start_cluster(ips[3])
start_cluster(ips[2])
start_cluster(ips[1])

3) 完成后,我现在想将R 连接到我的新多节点集群

 h2o.init(startH2O = F)
 h2o.shutdown(prompt = FALSE)

这是我看到节点没有被拾取的地方:

我还看到,当我在不同节点上启动 H2O 集群时,它并没有拾取网络中的其他机器:

【问题讨论】:

    标签: r amazon-ec2 h2o


    【解决方案1】:

    您还需要将端口 54321+1(即 54322)添加到安全组。

    内部通讯通过54322。

    (我还会为 -network 指定 /16,因为它更容易让其他人理解。例如,即使您确定 /20 在技术上对于您的网络设置是正确的,我也不能轻易确定。:- )

    根据实际的网络设置,您可能根本不需要 -network 标志。您的实例可能只有一个接口。

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 2022-01-09
      • 2021-11-10
      • 2021-02-12
      • 1970-01-01
      • 2019-02-24
      • 2021-12-02
      • 2016-11-21
      • 2018-01-11
      相关资源
      最近更新 更多