H2OConnectionError: Unexpected HTTP error: How to increase memory in H2O?

H2OConnectionError: Unexpected HTTP error: How to increase memory in H2O?

使用 Spyder 在 AWS 服务器上使用 python 代码加载我的数据集时,出现以下错误:

  File "<ipython-input-19-7b2e7b5812b3>", line 1, in <module>
    ffemq12 = load_h2odataframe_returns(femq12) #; ffemq12 = add_fold_column(ffemq12)

  File "D:\Ashwin\do\init_sm.py", line 106, in load_h2odataframe_returns
    fr=h2o.H2OFrame(python_obj=returns)

  File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 106, in __init__
    column_names, column_types, na_strings, skipped_columns)

  File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 147, in _upload_python_object
    self._upload_parse(tmp_path, destination_frame, 1, separator, column_names, column_types, na_strings, skipped_columns)

  File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 321, in _upload_parse
    ret = h2o.api("POST /3/PostFile", filename=path)

  File "C:\Program Files\Anaconda2\lib\site-packages\h2o\h2o.py", line 104, in api
    return h2oconn.request(endpoint, data=data, json=json, filename=filename, save_to=save_to)

  File "C:\Program Files\Anaconda2\lib\site-packages\h2o\backend\connection.py", line 415, in request
    raise H2OConnectionError("Unexpected HTTP error: %s" % e)

我在 AWS 服务器上的 Spyder 上 运行 这个 python 代码。该代码适用于一半的数据集 (1.5gb/3gb),但如果我增加数据大小时会抛出错误。我尝试将 RAM 从 61 GB 增加到 122 GB,但它仍然给我同样的错误。

正在加载数据文件

femq12 = pd.read_csv(r"H:\Ashwin\dta\datafile.csv")    
ffemq12 = load_h2odataframe_returns(femq12)

正在初始化 h2o

h2o.init(nthreads = -1,max_mem_size="150G")

正在加载水

Connecting to H2O server at http://127.0.0.1:54321... successful. -------------------------- ------------------------------------ H2O cluster uptime: 01 secs H2O cluster timezone: UTC H2O data parsing timezone: UTC H2O cluster version: 3.22.1.3 H2O cluster version age: 18 days H2O cluster total nodes: 1 H2O cluster free memory: 133.3 Gb H2O cluster total cores: 16 H2O cluster allowed cores: 16 H2O cluster status: accepting new members, healthy H2O connection proxy: H2O internal security:
False H2O API Extensions: Algos, AutoML, Core V3, Core V4 Python version: 2.7.15 final


我怀疑是内存问题。但即使在增加 RAM 和 max_mem_size 之后,数据集也没有加载。

任何修复错误的想法将不胜感激。谢谢你。

解决方法:不要使用pd.read_csv()h2o.H2OFrame(),直接使用h2o.import_file()

错误消息在 POST /3/PostFile REST 命令上。据我从您的代码和日志片段中可以看出,这意味着它正在上传到本地主机?那是非常低效的。

(如果不是本地主机,即你的 datafile.csv 在你的计算机上,它在 AWS 之外,然后先将它上传到 S3。如果你在你的计算机上做一些数据处理,那么这样做,然后将其保存为一个新文件,并将其上传到 S3。它不一定是 S3:如果你的 H2O 集群中只有一台机器,它可以是硬盘。)

对于某些背景,另请参阅我最近在 and 上的回答。 (我没有标记为重复,就好像建议是一样的,在每种情况下,原因都有点不同;在这里我想知道你是否达到了最大 HTTP POST 文件大小的限制,也许在2GB?我想它也可能是 运行 磁盘 space,来自所有的多个临时副本。)