MapReduceでJava heap space や physical memory limits エラー
環境:CDH4.1、YARN
対象データが大きいとOutOfMemoryエラーなどが出ることがあります。
もし、map実行中にJava heap spaceエラーが出たら、mapreduce.map.java.opts の値を大きくするといいかもしれません。
reduce実行中のエラーなら、mapreduce.reduce.java.opts
メモリ関係の主な設定パラメータ
mapred-site.xml
mapreduce.map.java.opts mapreduce.reduce.java.opts mapreduce.map.memory.mb mapreduce.reduce.memory.mb yarn.app.mapreduce.am.resource.mb yarn.nodemanager.vmem-pmem-ratio
yarn-site.xml
yarn.nodemanager.resource.memory-mb
pmem, vmem関連のメモリエラー
Container [container ID] is running beyond physical memory limits. Current usage: 2.1gb of 2.0gb physical memory used; 2.7gb of 4.0gb virtual memory used. Killing container.
これはmap実行中にphysical memory(物理メモリ)の制限値を超えた場合に出るエラー
どこでその制限値が設定されているのかというと、mapreduce.map.memory.mb
virtual memory(仮想メモリ)はphysical memoryに対する比率で設定します(yarn.nodemanager.vmem-pmem-ratio)
物理メモリが1000MBで比率を2にすれば、仮想メモリは2000MBになります。