我正在设置一个Hadoop单节点环境,以便在只有4GB物理RAM的硬件上进行测试,并使用Hadoop2.6.0。
我只使用了为此类环境建议的基本配置。但是我现在担心我可能应该调整内存资源管理,以便能够运行一些mapreduce示例。
我知道有几个设置可以查看,包括java堆,以及用于映射和reduce任务的内存。对于像我这样的小规模测试环境,我应该/可以为适度的地图缩减任务设置最小、最大容器大小以运行多低?
我特别指的是:
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
在启动 dfs 和启动纱线之后,计算机上的可用物理远低于 1 GB。
我经常在虚拟机上工作,我的纱线站点中有这些设置.xml:
<property>
<description>Max available memory on each data node.</description>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<property>
<description>Max available cores data node.</description>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>8</value>
</property>
<property>
<description>Minimum allocation unit.</description>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>256</value>
</property>
<property>
<description>Max allocation unit.</description>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<description>Minimum increment setting - set to same as min-allocation</description>
<name>yarn.scheduler.increment-allocation-mb</name>
<value>256</value>
</property>
这是在地图网站.xml -
<!-- small cluster memory settings -->
<property>
<name>mapreduce.map.memory.mb</name>
<value>256</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>256</value>
</property>
<property>
<description>Application master allocation</description>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>256</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx204m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx204m</value>
</property>
<property>
<description>Application Master JVM opts</description>
<name>yarn.app.mapreduce.am.command-opts</name>
<value>-Xmx204m</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>50</value>
</property>
我发现这些设置在我使用 VM 大小的数据卷(即,不要太大!