我有一个非常小的2节点Hadoop-HBase
集群。我正在执行MapReduce
个作业。我使用Hadoop-2.5.2
。我有32GB(每个节点有64GB的内存),每个节点上的MapReduce
都可用,并在yarn站点中进行了如下配置
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>32768</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>15</value>
</property>
对于执行的每个映射器/缩减器,我的资源需求为2GB。我已经在mapred-site.xml
中进行了配置,鉴于这些配置,总共有大约64GB的内存和30个vcore,我看到大约31个映射器或31个reducer并行执行。
尽管这一切都很好,但我想找出其中一部分。在两个节点上并行执行的映射器或化简器的数量不同,两个节点中的一个节点比另一个节点具有更高的任务数量。为什么会这样?可以控制吗?如果可以,怎么办?
我想YARN不会将其视为节点的资源,而是集群的资源,并且会在集群中的任何位置生成任务。这种理解正确吗?如果不是,那么在执行MR时对上述行为的正确解释是什么?