The 3.32 GB number in your post is a calculated number based on activity in the H2O job. So it's hard to validate it directly without knowing what happened in your job. 40 GB per node is quite different from 3.32 GB though, so do the following to sanity check the job...
After your H2O Hadoop job completes, you can take a look at the YARN logs to confirm the container is really getting the amount of memory you expect.
Use the following command (which is printed for you by the h2odriver output after the run completes):
yarn logs -applicationId application_nnn_nnn
For me, the (lightly pruned) output for one of the H2O node containers looks like this:
Container: container_e20_1487032509333_2085_01_000004 on mr-0xd4.0xdata.loc_45454
===================================================================================
LogType:stderr
Log Upload Time:Sat Apr 22 07:58:13 -0700 2017
...
LogType:stdout
Log Upload Time:Sat Apr 22 07:58:13 -0700 2017
LogLength:7517
Log Contents:
POST 0: Entered run
POST 11: After setEmbeddedH2OConfig
04-22 07:57:56.979 172.16.2.184:54323 11976 main INFO: ----- H2O started -----
04-22 07:57:57.011 172.16.2.184:54323 11976 main INFO: Build git branch: rel-turing
04-22 07:57:57.011 172.16.2.184:54323 11976 main INFO: Build git hash: 34b83da423d26dfbcc0b35c72714b31e80101d49
04-22 07:57:57.011 172.16.2.184:54323 11976 main INFO: Build git describe: jenkins-rel-turing-8
04-22 07:57:57.011 172.16.2.184:54323 11976 main INFO: Build project version: 3.10.0.8 (latest version: 3.10.4.5)
04-22 07:57:57.011 172.16.2.184:54323 11976 main INFO: Build age: 6 months and 11 days
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Built by: 'jenkins'
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Built on: '2016-10-10 13:45:37'
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Java availableProcessors: 32
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Java heap totalMemory: 9.86 GB
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Java heap maxMemory: 9.86 GB
04-22 07:57:57.012 172.16.2.184:54323 11976 main INFO: Java version: Java 1.7.0_67 (from Oracle Corporation)
Note that the application master container log output looks different, so just find the output for any one of the H2O node containers.
Look for the line "Java heap maxMemory". In my case, I requested '-mapperXmx 10g' on the command line, so this looks good. 9.86 GB is close to '10g' given a little JVM overhead.
If it's not as you expect, you have a Hadoop configuration problem: some Hadoop setting is overriding the amount of memory you are requesting on the command line.
h2o.init()
, which is not that much. – Erin LeDell