簡體   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