1

Windows 10、Anaconda 2.4.1、および Python 2.7.11 を使用しており、oxdata から h2o パッケージを実行しようとしています。

h2o をインストールするには、以下を使用しました。

pip install h2o

Python Vignette of H2o パッケージで指定されているように初期化しようとしています。

import h2o
h2o.init()

しかし、次のように Windows エラー [5] に言及する長いトレースバックが表示されます。

    No instance found at ip and port: localhost:54321. Trying to start local jar...


JVM stdout: c:\users\ashish\appdata\local\temp\tmpech694\h2o_Ashish_started_from_python.out
JVM stderr: c:\users\ashish\appdata\local\temp\tmp7aoeza\h2o_Ashish_started_from_python.err
Using ice_root: c:\users\ashish\appdata\local\temp\tmpjijmdl

Traceback (most recent call last):

  File "<ipython-input-2-e7cfdc50af66>", line 1, in <module>
    h2o.init()

  File "C:\Users\Ashish\Anaconda2\lib\site-packages\h2o\h2o.py", line 668, in init
    H2OConnection(ip=ip, port=port,start_h2o=start_h2o,enable_assertions=enable_assertions,license=license,max_mem_size_GB=max_mem_size_GB,min_mem_size_GB=min_mem_size_GB,ice_root=ice_root,strict_version_check=strict_version_check)

  File "C:\Users\Ashish\Anaconda2\lib\site-packages\h2o\connection.py", line 81, in __init__
    cld = self._start_local_h2o_jar(max_mem_size_GB, min_mem_size_GB, enable_assertions, license, ice_root, jar_path)

  File "C:\Users\Ashish\Anaconda2\lib\site-packages\h2o\connection.py", line 181, in _start_local_h2o_jar
    jver = subprocess.check_output([command, "-version"], stderr=subprocess.STDOUT)

  File "C:\Users\Ashish\Anaconda2\lib\subprocess.py", line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)

  File "C:\Users\Ashish\Anaconda2\lib\subprocess.py", line 710, in __init__
    errread, errwrite)

  File "C:\Users\Ashish\Anaconda2\lib\subprocess.py", line 958, in _execute_child
    startupinfo)

WindowsError: [Error 5] Access is denied

しかし、R言語でh2oパッケージをインストールすると

install.packages("h2o")

そしてRで実行してみてください

library(h2o)
h <- h2o.init()

エラーは発生せず、h2o は localhost とポート 54321 で完全に起動します。

また、Pythonでh2oを開始すると、つまりpythonで

h2o.init()

次に、すでに実行されている h2o のインスタンスに接続し、問題なくすべての操作を実行します。

しかし、h2o インスタンスを事前に起動するステップを避け、Python で起動したいと考えています。私の問題が他の誰かのシステムで再現可能かどうかはわかりません。

私は単に使いたい

import h2o
h2o.init()

Pythonでh2oを開始します。

解決策を提供してみてください。

4

1 に答える 1

1

次のコードを使用して問題を解決しようとしました。

"""
Code to initialize H2O instance

@author: Naimish Agarwal
"""

import subprocess as sp
import sys
import os.path as p
import h2o

# path of h2o jar file
h2o_path = p.join(sys.prefix, "h2o_jar", "h2o.jar")

# subprocess to launch h2o
# the command can be further modified to include virtual machine parameters
sp.Popen("java -jar " + h2o_path)

# h2o.init() call to verify that h2o launch is successfull
h2o.init()

そして、次の出力が生成されました。

--------------------------  --------------------------
H2O cluster uptime:         2 seconds 603 milliseconds
H2O cluster version:        3.6.0.8
H2O cluster name:           Ashish
H2O cluster total nodes:    1
H2O cluster total memory:   3.54 GB
H2O cluster total cores:    4
H2O cluster allowed cores:  4
H2O cluster healthy:        True
H2O Connection ip:          127.0.0.1
H2O Connection port:        54321
--------------------------  --------------------------
于 2016-01-30T07:23:41.987 に答える