控制集群中每个节点上的映射器数量

时间:2018-10-09 17:35:49

标签: hadoop mapreduce yarn resource-management

我有一个非常小的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时对上述行为的正确解释是什么?

0 个答案:

没有答案