【导读】
yarn中的资源配置直接涉及到单个计算节点能支持的并发个数,因此yarn资源配置是优化map/reduce任务的重要一步。本文列举了跟yarn配置紧密相关的几个参数。
【正文】
1. 单个node节点能占用的最大内存 (yarn-site.xml)
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
2. 每个container运行需要的最小内存 (yarn-site.xml)
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
3. 每个map任务运行时占用的最大内存 (mapred-site.xml)
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
4. 每个reduce任务运行时占用的最大内存 (mapred-site.xml)
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
5. map任务运行时jvm分配的最大内存,不能超过 mapreduce.map.memory.mb的值 (mapred-site.xml)
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx2040m</value>
</property>
6. reduce任务运行时jvm分配的最大内存,不能超过mapreduce.reduce.memory.mb的值(mapred-site.xml)
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2040m</value>
</property>
单个node机器上能同时运行的map任务个数计算:yarn.nodemanager.resource.memory-mb / mapreduce.map.memory.mb
同理,reduce的任务个数也是这样计算的。
7.虚拟cpu合数
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>12</value>
</property>