2017-04-16 104 views
1

當我做rhadoop的例子時,發生了下面的錯誤。容器運行超出虛擬內存限制

超出虛擬內存限制。當前使用情況:使用1 GB物理內存121.2 MB;使用2.1 GB的2.1 GB虛擬內存。殺死容器。

根據要求死亡的容器。退出代碼是143

集裝箱退出,非零退出代碼143

的Hadoop流失敗,錯誤代碼1

我怎樣才能解決這個問題?

我的hadoop設置。

mapred-site.xml中

<configuration> 
     <property> 
       <name>mapreduce.framework.name</name> 
       <value>yarn</value> 
     </property> 
</configuration> 

紗線的site.xml

<configuration> 

<!-- Site specific YARN configuration properties --> 
     <property> 
       <name>yarn.nodemanager.aux-services</name> 
       <value>mapreduce_shuffle</value> 
     </property> 
     <property> 
       <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name> 
       <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
     </property> 
     <property> 
       <name>yarn.nodemanager.local-dirs</name> 
       <value>/usr/local/hadoop-2.7.3/data/yarn/nm-local-dir</value> 
     </property> 
     <property> 
       <name>yarn.resourcemanager.fs.state-store.uri</name> 
       <value>/usr/local/hadoop-2.7.3/data/yarn/system/rmstore</value> 
     </property> 
     <property> 
       <name>yarn.resourcemanager.hostname</name> 
       <value>localhost</value> 
     </property> 
     <property> 
       <name>yarn.web-proxy.address</name> 
       <value>0.0.0.0:8089</value> 
     </property> 
</configuration> 
+0

我懷疑這與R,RStudio,RStudio Server和RHadoop相比,Hadoop本身並不重要。 (我不是Hadoop專家,但我的直覺告訴我1GB對它來說太低了。)由於這與* programming *無關,所以我建議這個問題屬於[Server Fault](https:// serverfault。 com /)或[SuperUser](https://superuser.com/)(兩個StackExchange站點)。 – r2evans

+0

我無法弄清楚爲什麼有2個RStudio標籤。 –

+0

如果我冒犯了你,我表示歉意。我不知道錯誤的原因是什麼。還有什麼是不同的r,rstudio和rstudio-server。因爲我關於hadoop和R的經驗不到一個月。 –

回答

1

同時運行的紗線集羣上的星火應用我有幾乎同樣的錯誤。

「容器[PID = 791,數據筒= container_1499942756442_0001_02_000001]運行超出虛擬內存限制電流的使用:。135.4 MB的1個GB物理內存中; 2.1 GB的2.1 GB的虛擬內存用於殺死容器

我通過在文件紗的site.xml

<property> 
<name>yarn.nodemanager.vmem-check-enabled</name> 
<value>false</value> 
</property> 

這一項設置足以在我的情況禁用虛擬內存檢查解決它。

1

下面稱爲位點。 http://crazyadmins.com/tag/tuning-yarn-to-get-maximum-performance/

然後我才知道我可以改變mapreduce的內存分配。

我改變mapred-site.xml中

<configuration> 
     <property> 
       <name>mapreduce.framework.name</name> 
       <value>yarn</value> 
     </property> 
     <property> 
       <name>mapreduce.map.memory.mb</name> 
       <value>2000</value> 
     </property> 
     <property> 
       <name>mapreduce.reduce.memory.mb</name> 
       <value>2000</value> 
     </property> 
     <property> 
       <name>mapreduce.map.java.opts</name> 
       <value>1600</value> 
     </property> 
     <property> 
       <name>mapreduce.reduce.java.opts</name> 
       <value>1600</value> 
     </property> 
</configuration>