hadoop 偽分散式執行 mapreduce 任務時報 running beyond physical memory或者beyond vitual memory limits
阿新 • • 發佈:2020-09-04
當執行中出現Container is running beyond physical memory這個問題出現主要是因為實體記憶體不足導致的,在執行mapreduce的時候,每個map和reduce都有自己分配到記憶體的最大值,當map函式需要的記憶體大於這個值就會報這個錯誤,解決方法:
在mapreduc-site.xml配置裡面設定mapreduce的記憶體分配大小
<property> <name>mapreduce.map.memory.mb</name> <value>2048</value> </property>
當執行中提示running beyond virtual memory limits. Current usage: 32.1mb of 1.0gb physical memory used; 6.2gb of 2.1gb virtual memory used. Killing container。
該錯誤是YARN的虛擬記憶體計算方式導致,上例中使用者程式申請的記憶體為1Gb,YARN根據此值乘以一個比例(預設為2.1)得出申請的虛擬記憶體的 值,當YARN計算的使用者程式所需虛擬記憶體值大於計算出來的值時,就會報出以上錯誤。調節比例值可以解決該問題。具體引數為:yarn-site.xml 中的yarn.nodemanayger.vmem-check-enabled
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>5</value>
</property>
轉載自:https://www.cnblogs.com/lisi2016/p/6863923.html