gpt4 book ai didi

java - 如何用 H2O 处理大数据集

转载 作者:行者123 更新时间:2023-12-01 14:28:48 24 4
gpt4 key购买 nike

我正在尝试使用 H2O (3.14) 训练机器学习模型。我的数据集大小为 4Gb,我的计算机 RAM 为 2Gb,具有 2G 交换空间,JDK 1.8。引用这个article , H2O 可以处理具有 2Gb RAM 的巨大数据集。

  • A note on Bigger Data and GC: We do a user-mode swap-to-disk when the Java heap gets too full, i.e., you're using more Big Data than physical DRAM. We won't die with a GC death-spiral, but we will degrade to out-of-core speeds. We'll go as fast as the disk will allow. I've personally tested loading a 12Gb dataset into a 2Gb (32bit) JVM; it took about 5 minutes to load the data, and another 5 minutes to run a Logistic Regression.

关于这个问题的一些问题:

解决方法 1:

我使用选项 java -Xmx10g -jar h2o.jar 配置了 java 堆。当我加载数据集时。 H2O信息如下:

但是,JVM 消耗了所有 RAM 内存和 Swap,然后操作系统停止了 java h2o 程序。

解决方法 2:

我安装了 H2O spark .我可以加载数据集,但 spark 卡在以下日志中,并带有完整的交换内存:

 + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=841.3 MB OOM!
09-01 02:01:12.377 192.168.233.133:54321 6965 Thread-47 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.2 MB + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=841.3 MB OOM!
09-01 02:01:12.377 192.168.233.133:54321 6965 Thread-48 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.2 MB + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=841.3 MB OOM!
09-01 02:01:12.381 192.168.233.133:54321 6965 Thread-45 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.3 MB + FREE:426.7 MB == MEM_MAX:2.67 GB), desiredKV=803.2 MB OOM!
09-01 02:01:12.382 192.168.233.133:54321 6965 Thread-46 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.4 MB + FREE:426.5 MB == MEM_MAX:2.67 GB), desiredKV=840.9 MB OOM!
09-01 02:01:12.384 192.168.233.133:54321 6965 #e Thread WARN: Swapping! GC CALLBACK, (K/V:1.75 GB + POJO:513.4 MB + FREE:426.5 MB == MEM_MAX:2.67 GB), desiredKV=802.7 MB OOM!
09-01 02:01:12.867 192.168.233.133:54321 6965 FJ-3-1 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.4 MB + FREE:426.5 MB == MEM_MAX:2.67 GB), desiredKV=1.03 GB OOM!
09-01 02:01:13.376 192.168.233.133:54321 6965 Thread-46 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.2 MB + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=803.2 MB OOM!
09-01 02:01:13.934 192.168.233.133:54321 6965 Thread-45 WARN: Swapping! OOM, (K/V:1.75 GB + POJO:513.2 MB + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=841.3 MB OOM!
09-01 02:01:12.867 192.168.233.133:54321 6965 #e Thread WARN: Swapping! GC CALLBACK, (K/V:1.75 GB + POJO:513.2 MB + FREE:426.8 MB == MEM_MAX:2.67 GB), desiredKV=803.2 MB OOM!

在这种情况下,我认为 gc 收集器正在等待清除交换中一些未使用的内存。

如何使用有限的 RAM 内存处理庞大的数据集?

最佳答案

引用的 2014 年文章已经过时很多年了,并且指的是 H2O-2。 within-H2O 用户模式交换到磁盘的概念当时是实验性的。

但这在 H2O-3(它在 2015 年初左右成为主要的 H2O 代码库)中从未得到支持,因为性能很差,正如引用的 StackOverflow 帖子所解释的那样。

关于java - 如何用 H2O 处理大数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com