【发布时间】: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)
【问题讨论】:
标签: r amazon-ec2 h2o