繁体   English   中英

无法从Python连接到正在运行的H2o服务器[H2O.ai]

[英]Unable to connect to a running H2o Server from Python [H2O.ai]

从主节点连接到在EMR核心节点上运行的H2o服务器时出错。

import h2o
h2o.connect(url="http://IP:54321")

错误跟踪

Connecting to H2O server at http://IP:54321... successful.
Traceback (most recent call last):
  File "/home/hadoop/TataCliqEMR/app/__init__.py", line 3, in <module>
    h2o.connect(ip="IP", port=54321)
  File "/usr/local/lib/python3.4/site-packages/h2o/h2o.py", line 86, in connect
    h2oconn.cluster.show_status()
  File "/usr/local/lib/python3.4/site-packages/h2o/backend/cluster.py", line 190, in show_status
    ["H2O internal security:",     self.internal_security_enabled],
  File "/usr/local/lib/python3.4/site-packages/h2o/backend/cluster.py", line 121, in internal_security_enabled
    return self._props["internal_security_enabled"]
KeyError: 'internal_security_enabled'

这里也没有答案

原因是H2O后端和客户端的版本不兼容(在这种情况下,客户端是h2o Python模块)。 H2O后端(在集群上运行的Java进程)的版本和本地使用的Python h2o模块的版本必须相同。

您的服务器(位于"http://IP:54321" )似乎正在运行旧版本的H2O。 由于您已经尝试运行要连接的H2O集群,因此最好的解决方案是安装不同版本的h2o Python模块(而不是相反)。

如果您不知道服务器运行的是哪个版本,则可以查看日志,也可以尝试h2o.init(ip=IP)并返回正确的“版本不匹配”错误,该错误将告诉您两个版本。

要下载h2o Python模块的特定版本,可以在Changes.md中查找发行名称(例如“ Turing”),然后转到“下载”页面URL。 例如,如果我想下载3.10.4.2,我将在上面链接的Changes.md上搜索“ 3.10.4.2”,请注意发行版名称为“ Ueno”。 利用该信息,您可以为该版本的下载页面构造URL,例如:

http://h2o-release.s3.amazonaws.com/h2o/rel-ueno/2/index.html

或者,您也可以找出.whl文件的确切位置:

pip install http://h2o-release.s3.amazonaws.com/h2o/rel-ueno/2/Python/h2o-3.10.4.2-py2.py3-none-any.whl

编写此回复使我意识到找到旧版本的链接并非易事,因此我添加了JIRA来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM