【问题标题】:H2OConnectionError: Unexpected HTTP error: How to increase memory in H2O?H2OConnectionError:意外的 HTTP 错误:如何增加 H2O 中的内存?
【发布时间】:2019-07-07 08:15:14
【问题描述】:

在使用 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 从 61GB 增加到 122GB,但它仍然给我同样的错误。

加载数据文件

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

初始化 h2o

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

正在加载水

连接到 http://127.0.0.1:54321... 的 H2O 服务器成功。 -------------------------- ------------------------ ------------ H2O 集群正常运行时间:01 秒 H2O 集群时区:UTC H2O 数据解析时区:UTC H2O集群版本:3.22.1.3 H2O 集群版本年龄:18 天 H2O 集群总节点:1 H2O 集群空闲内存:133.3 Gb H2O 集群总内核:16 H2O 集群允许的核心数:16 H2O 集群状态:接受新的 会员,健康的 H2O 连接代理:H2O 内部安全:
虚假 H2O API 扩展:Algos、AutoML、Core V3、Core V4 Python 版本:2.7.15 最终版


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

任何解决错误的想法将不胜感激。谢谢你。

【问题讨论】:

  • 您能否验证 AWS 没有对您可以读入集群的数据集大小实施限制?谢谢!

标签: python h2o


【解决方案1】:

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

错误消息在POST /3/PostFile REST 命令上。据我所知,从您的代码和日志 sn-ps 可以看出,这意味着它正在上传到 localhost?效率太低了。

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

有关一些背景信息,另请参阅我最近在 https://stackoverflow.com/a/54568511/841830https://stackoverflow.com/a/54459577/841830 的回答。 (我没有标记为重复,好像建议是相同的,在每种情况下,原因都有些不同;在这里我想知道您是否达到了最大 HTTP POST 文件大小的限制,可能是 2GB?我想它也可能是磁盘空间不足,因为要制作所有多个临时副本。)

【讨论】:

    猜你喜欢
    • 2018-10-11
    • 2018-07-06
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多