容器运行超出虚拟内存限制

Eun*_* Yu 6 hadoop r rstudio rstudio-server rhadoop

当我做rhadoop示例时,发生以下错误.

超出虚拟内存限制.当前用法:使用121.2 MB的1 GB物理内存; 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>
Run Code Online (Sandbox Code Playgroud)

纱的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>
Run Code Online (Sandbox Code Playgroud)

Anu*_*rag 9

在YARN群集上运行Spark应用程序时,我遇到了几乎相同的错误.

"Container [pid = 791,containerID = container_1499942756442_0001_02_000001]正在运行超出虚拟内存限制.当前使用情况:使用135.4 MB的1 GB物理内存;使用2.1 GB的2.1 GB虚拟内存.杀死容器. "

我通过在文件yarn-site.xml中禁用虚拟内存检查来解决它

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
Run Code Online (Sandbox Code Playgroud)

在我的情况下,这一个设置就足够了.


Eun*_* Yu 5

我提到了下面的网站。 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>
Run Code Online (Sandbox Code Playgroud)