H2O中的内存管理

时间:2017-10-17 09:40:11

标签: h2o

我很想知道如何在H2O中管理内存。 它是完全“内存中”还是允许交换,以防内存消耗超出可用的物理内存?如果节点上总共有384GB的RAM,我可以将-mapperXmx参数设置为350GB吗?我确实意识到在这种情况下,集群将无法处理H2O集群以外的任何其他集合。 任何指针都非常感谢,谢谢。

1 个答案:

答案 0 :(得分:2)

  1. H2O-3将数据完全存储在分布式列压缩分布式键值存储中。

  2. 不支持交换到磁盘。

  3. 由于您提到mapperXmx,我假设您正在谈论在YARN环境中运行H2O。在这种情况下,每个节点分配的总YARN容器大小为:

    mapreduce.map.memory.mb = mapperXmx *(1 + extramempercent / 100)

  4. extramempercent是h2odriver.jar的另一个(很少使用的)命令行参数。请注意,默认extramempercent为10(百分比)。

    mapperXmx是Java堆的大小,上面提到的额外内存用于JVM实现本身的额外开销(例如C / C ++堆)。

    YARN对此非常挑剔,如果你的容器试图在其分配中使用甚至一个字节(mapreduce.map.memory.mb),YARN将立即终止容器。 (对于H2O-3,由于它是一个内存处理引擎,一个容器的丢失会终止整个作业。)

    您可以将mapperXmxextramempercent设置为YARN有足够空间来启动容器的值。