2017-05-04 13 views
1

マスターノードからEMRコアノードで実行されているH2oサーバーに接続する際にエラーが発生しました。Pythonから実行中のH2oサーバーに接続できません[H2O.ai]

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' 

It's also unanswered here

+0

実行中のH2Oのバージョンを指定してください。最新の安定版でない場合は、必ずアップグレードしてからもう一度試してみてください。 –

答えて

2

この原因は、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"を検索し、リリース名が "上野"であることを確認します。その情報を使用して、例えば、そのバージョンのダウンロードページの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を追加しました。

+0

フォローアップのメモ:「h2o 3.10.4.2」のグーグルでダウンロードページを見つけるのは非常に簡単だと誰かが指摘しました。 –

+0

はい、そうです。 –

関連する問題