2017-05-01 16 views
0

を超えて実行されている、私はstackoverflowので検索次のエラーのHadoop Containderは、物理メモリの制限

Container [pid=12850,containerID=container_1489504424139_0638_01_201123] is running beyond physical memory limits. Current usage: 4.0 GB of 4 GB physical memory used; 8.8 GB of 8.4 GB virtual memory used. Killing container. 

を持って、それは私にいくつかのページ(Link1Link2)を提供します。しかし、それは助けにはならない。私はまだエラーがあります。現在のmapred-site.xmlファイルは次のとおりです。

<configuration> 
<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
</property> 
<property> 
    <name>mapreduce.map.java.opts</name> 
    <value> -Xmx3072m</value> 
</property> 
<property> 
    <name>mapreduce.reduce.java.opts</name> 
    <value> -Xmx6144m</value> 
</property> 
<property> 
    <name>mapreduce.map.memory.mb</name> 
    <value>4096</value> 
</property> 
<property> 
    <name>mapreduce.reduce.memory.mb</name> 
    <value>8192</value> 
</property> 
<property> 
    <name>mapred.child.java.opts</name> 
    <value>-Xmx2048m</value> 
</property> 
</configuration> 

ありがとうございます!

答えて

0

私は、xmlファイルを変更してみました。しかし、後で、Pythonコード(いくつかのC++ APIに依存するいくつかのJava APIを使用してオブジェクトを構築しています)をよりメモリにやさしく、つまり範囲外にすると、そのデストラクタを明示的に呼び出します。その後、問題はなくなりました!

1

は、これらのプロパティを使用してみてください:

mapreduce.map.output.compress 
mapreduce.map.output.compress.codec 

OR

は、メモリ割り当ての小道具を変更する:

mapreduce.map.memory.mb 
mapreduce.reduce.memory.mb