无法从Python [H2O.AI]连接到运行的H2O服务器



连接到主节点上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模块的特定版本,您可以在更改中查看。md以获取发行名称(例如" Turing"(,然后转到下载页面URL。例如,如果我想下载3.10.4.2,我将在上面链接的更改上搜索" 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来解决这个问题。

最新更新