【问题标题】:Error when calling h2o.init() in R to connecting to remote cluster在 R 中调用 h2o.init() 以连接到远程集群时出错
【发布时间】:2017-06-09 02:09:42
【问题描述】:

我正在尝试从 R 连接到托管在 EC2 机器上的集群,并在 Windows 和 Mac 上尝试时遇到相同的错误:

> h2o.init(ip = "<Public IP>")
 Connection successful!


ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://<Public IP>:54321/3/Cloud?skip_ticks=true)

Error: lexical error: invalid char in json text.
                                       <!DOCTYPE html> <html lang="en"
                     (right here) ------^
  • 可通过http://&lt;Public IP&gt;:54321/ 访问集群
  • 使用h2o.init() 启动本地集群在 R 中也可以正常工作,因此问题仅在尝试连接到 远程 集群时出现。

我看到以下issue 被标记为已解决,但对我来说没有帮助。有没有人经历过类似的事情?


UPD:答案很简单。事实证明,他们guide for EC2 中给出的代码示例已经过时,并且使用的是旧版本的 H2O。在 EC2 机器上使用最新版本(目前为3.9.1.5555)已经解决了这个问题。

【问题讨论】:

  • 你确定你本地的h2o R包和你远程运行的h2o集群是同一个版本吗?
  • 这很有用,但您应该回答自己的问题并接受,而不是用答案编辑您的问题。

标签: r amazon-ec2 h2o


【解决方案1】:

详细说明 OP 的更新,使用远程集群时:

确保您安装的是最新版本(检查S3 download page 以了解重定向到版本号)。在下面的示例中,这是 3.13.0.3908:

wget http://s3.amazonaws.com/h2o-release/h2o/master/3908/h2o-3.13.0.3908.zip
unzip h2o-3.13.0.3908.zip
mv h2o-3.13.0.3908 h2o
cd h2o
java -Xmx4g -jar h2o.jar

然后您需要安装与此版本对应的h2o-R 版本。 (正确的版本可能不是 CRAN 版本。)否则您将收到如下错误:

Error in h2o.init(ip = "XXX.XX.XX.XXX", startH2O = FALSE) : 
  Version mismatch! H2O is running version 3.13.0.3908 but h2o-R package is version 3.10.4.6.
         Install the matching h2o-R version from - http://h2o-release.s3.amazonaws.com/h2o/master/3908/index.html

因此您需要注意 H2O 正在运行的版本号(在上面的示例中为 3908),确保您之前已删除任何现有的 h2o-R 包(有关更多信息,请参阅 here),然后执行:

install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/master/3908/R")

现在它应该可以工作了:

library('h2o')
remoteH2O <- h2o.init(ip='XXX.XX.XX.XXX', startH2O=FALSE) #  Connection successful!

【讨论】:

    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2015-09-02
    • 2018-07-01
    • 2020-10-04
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2017-07-02
    相关资源
    最近更新 更多