2016-05-23 63 views
1

我试图连接到来自R托管EC2机上的集群,得到同样的错误在Windows和Mac尝试当两个:错误调用R中h2o.init()时,连接到远程群集

> 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)已解决该问题。

+1

您确定您本地的h2o R软件包和您正在远程运行的H2O群集是相同的版本吗? –

+0

这很有用,但不要用答案编辑问题,而应该回答自己的问题并接受。 – C8H10N4O2

回答

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! 
相关问题