在AWS EC2上使用h2o进行多节点群集安装

con*_*iii 4 r cluster-computing amazon-ec2 amazon-web-services h2o

我想知道如何使用多个AWS EC2实例和R-Studio设置h2o集群.我不是计算机科学家,对于那些微不足道的问题感到抱歉(!)

基于本教程(http://amunategui.github.io/h2o-on-aws/),我在AWS EC2实例(Linux)上成功安装了h2o和R-Studio.但我宁愿创建一个多实例集群,让我们说4个实例,每个实例有8个核心.

在此(http://h2o-release.s3.amazonaws.com/h2o/rel-lambert/5/docs-website/deployment/multinode.html)文档之后,我需要一个flatfile.txt,我可以在其中列出所有IP和每个EC2实例的端口.在下一步中,我必须将此文件复制到集群中的每个节点,然后我需要通过java命令行启动集群...因为我不是我已经提到的计算机科学家,所以出现了一些问题:

  1. 我在哪里可以找到每个h2o实例的IP和端口?
  2. 我如何将生成的文件复制到每个节点?
  3. 从第5步开始,我完全糊涂了; 我在哪里插入这一行/我在哪里可以找到java命令行?
  4. 我不想使用h2o的Web UI,那么如何从R-Studio访问集群(安装在其中一个实例上)?

非常感谢你提前!

Dar*_*ook 6

1A.哪里可以获得IP?在创建每个EC2实例时,您会被告知他们.它是您想要的私有IP(通常以172开头.)(顺便说一下,请确保在同一可用区中创建它们.)

1B.使用54321作为端口.所以3个节点的flatfile.txt可能如下所示:

172.31.1.123:54321
172.31.2.237:54321
172.44.99.99:54321
Run Code Online (Sandbox Code Playgroud)

_2.您可以在笔记本上制作flatfile.txt,然后将其scp到主目录中的每个节点.(将公共IP用于scp.)

_3.依次ssh到每台机器,然后从主目录中输入该命令,例如

 java -Xmx20g -jar h2o.jar -flatfile flatfile.txt -port 54321
Run Code Online (Sandbox Code Playgroud)

_4.首先确保您的Amazon防火墙(也称为"安全组")中的端口8787已打开.一旦确定H2O集群正在运行(假设您已经安装了H2O R软件包,并确保它与集群中每个节点上的版本完全相同),那么您只需执行以下操作:

library(h2o)
h2o.init()
Run Code Online (Sandbox Code Playgroud)

h2o.init()对集群中的任何节点的本地机器上的外观.


在旁边:

我一直在使用的是这里的脚本:

https://github.com/h2oai/h2o-3/tree/master/ec2

他们为您完成了几乎所有步骤,包括制作flatfile,分发它,以及在每个节点上启动H2O.您仍然需要设置一个安全组(好吧,我想可选:脚本默认是没有安全组!),您需要为用于登录RStudio的用户设置密码.而且你需要安装H2O R软件包(我认为可以在RStudio中完成,如果你厌恶命令行).