【发布时间】:2019-06-03 02:49:15
【问题描述】:
h2o 服务可能停止响应 http REST API 请求的可能原因有哪些?
我们正在使用 R CRAN 包,经过一段时间后,h2o 服务器停止响应。我们捕获了各种日志,但没有明显的错误或原因。还有一个一致性问题,我将在日志之后详细说明。 h2o.logging() 日志显示:
Time: 2019-01-07 11:13:19.262
GET http://localhost:54321/3/Jobs/$03017f00000132d4ffffffff$_936500deb000be7364a7e2ce61d5451e
postBody:
curlError: FALSE
curlErrorMessage:
httpStatusCode: 200
httpStatusMessage: OK
millis: 3513
{"__meta":{"data":"removed as it is not relevant"}}
------------------------------------------------------------
Time: 2019-01-07 11:13:25.013
GET http://localhost:54321/3/Jobs/$03017f00000132d4ffffffff$_936500deb000be7364a7e2ce61d5451e
postBody:
curlError: TRUE
curlErrorMessage: Failed to connect to localhost port 54321: Connection refused
httpStatusCode: -1
httpStatusMessage:
millis: 88616
主日志显示它之前正在工作:
Connection successful!
R is connected to the H2O cluster:
H2O cluster uptime: 2 minutes 9 seconds
H2O cluster timezone: Etc/UTC
H2O data parsing timezone: UTC
H2O cluster version: 3.20.0.8
H2O cluster version age: 3 months and 17 days !!!
H2O cluster name: H2O_started_from_R_root_ttz747
H2O cluster total nodes: 1
H2O cluster total memory: 255.99 GB
H2O cluster total cores: 2
H2O cluster allowed cores: 2
H2O cluster healthy: TRUE
H2O Connection ip: localhost
H2O Connection port: 54321
H2O Connection proxy: NA
H2O Internal Security: FALSE
H2O API Extensions: XGBoost, Algos, AutoML, Core V3, Core V4
R Version: R version 3.5.1 (2018-07-02)
|======================================================================| 100%
|======================================================================| 100%
Error in .h2o.__checkConnectionHealth() :
H2O connection has been severed. Cannot connect to instance at http://localhost:54321/
Failed to connect to localhost port 54321: Connection refused
Calls: <Anonymous> -> .h2o.__remoteSend -> .h2o.__checkConnectionHealth
有趣的是,它在有这个问题的机器(大多数)上是 100% 可重复的,但我们也有两台机器没有出现这个问题(至少看起来没有,我们可以不排除他们从来没有,但他们通常运行良好)。
我发现 h2o 永远不会自行关闭,所以这不太可能。我们停止了 R 脚本中的任何并行性,这并没有改变任何东西。
因此,我们需要有关如何在此处识别问题并解决问题的建议。
【问题讨论】:
-
java服务器进程死了吗?或者只是被数据填满而变得无响应?我会查看 java 进程 stdout 和 stderr 以了解发生了什么。
-
@TomKraljevic 看来 h2o Java 进程死了。至少它现在没有运行,并且没有任何代码故意停止它。但是 Rscript 删除了所有日志,所以可能有什么东西正在关闭它。我们修改了脚本,最后为我们复制了日志,.out 文件中没有任何内容表明有任何问题。确实,h2o日志都被抓到了,-error和-fatal日志都是空的。
-
@TomKraljevic 我已经在其中一台“工作”机器上运行,最后 h2o 服务器不再运行,因此 R 系统必须对其进行清理。因此,我们无法从中获得任何信息。如果有人能够提供专业的帮助来解决这个问题,请与我们联系。
-
H2O.ai 公司为 H2O 开源产品提供企业支持(即“专业帮助”)。您可以联系 sales@h2o.ai 了解更多信息。
-
您是从 R 中使用
h2o.init()还是从命令行启动 H2O 的?如果是前者,请尝试从命令行使用java -jar h2o.jar或使用此处详述的高级选项:docs.h2o.ai/h2o/latest-stable/h2o-docs/…