我正在尝试从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://<Public IP>:54321/
h2o.init()
启动本地群集在R中也可以正常工作,因此只有在尝试连接远程时才会出现此问题。我已经看到以下issue标记为已解决,但在我的情况下无效。有没有人经历过类似的事情?
UPD:答案非常简单。事实证明,guide for EC2中给出的代码示例已过时,并使用旧版本的H2O。使用EC2计算机上的最新版本(目前为3.9.1.5555)已解决了该问题。
答案 0 :(得分: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!