【发布时间】:2018-02-14 20:02:07
【问题描述】:
基于问题和后续答案here:当启动在hadoop集群上运行的h2o实例时,(比如hadoop jar h2odriver.jar -nodes 4 -mapperXmx 6g -output hdfsOutputDir)用于连接到h2o实例的回调IP地址由hadoop选择运行。所以在大多数情况下,IP 地址和端口是由 Hadoop 运行时选择的,以找到最佳可用的,看起来像
....
H2O node 172.18.4.63:54321 reports H2O cluster size 4
H2O node 172.18.4.67:54321 reports H2O cluster size 4
H2O cluster (4 nodes) is up
(Note: Use the -disown option to exit the driver after cluster formation)
Open H2O Flow in your web browser: http://172.18.4.67:54321
Connection url output line: Open H2O Flow in your web browser: http://172.18.4.67:54321
使用h2o 的推荐方式是每次您想使用它时启动和停止单个实例(抱歉,目前找不到支持文档)。这里的问题是,如果您希望您的 python 代码启动并自动连接到 h2o 实例,那么在 h2o 实例已经启动并运行之前,它不会知道要连接到哪个 IP。因此,在 Hadoop 上启动 H2O 集群的一种常见方法是让 Hadoop 决定集群,然后解析输出的行
Open H2O Flow in your web browser: x.x.x.x:54321
获取/提取 IP 地址。
这里的问题是h2o 是一个阻塞进程,它在实例启动时输出为文本行的流,而不是批量输出,这让我很难获得使用基本 python Popen 逻辑捕获输出所需的最终输出行。有没有办法在生成输出时捕获输出以获取与连接 IP 的线路?
【问题讨论】: