在emr mapreduce2中分配资源(Map者的数量)的问题

1sbrub3j  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(339)

我有一个非常小的新emr集群可以使用,我正在尝试将每个节点的并发Map器数量限制为2个。我试着将默认的cpu vcores调整为2。
使用的公式:

min((yarn.nodemanager.resource.memory-mb / mapreduce.map.memory.mb),
    (yarn.nodemanager.resource.cpu-vcores / mapreduce.map.cpu.vcores))

群集配置:

AMI version: 3.3.1
Hadoop distribution: Amazon 2.4.0
Core: 4 m1.large

作业配置:

yarn.nodemanager.resource.memory-mb:5120
mapreduce.map.memory.mb:768

yarn.nodemanager.resource.cpu-vcores: 2
mapreduce.map.cpu.vcores: 1

因此,我目前看到22个Map同时运行。除了根据公式是错误的,这是没有意义的,在所有给予我有4个核心。有什么想法吗?

w9apscun

w9apscun1#

我还没有体验过公式的第二部分(使用vcores的那部分)在我所工作的小型专用集群上发生过(尽管根据公式它应该发生过)。我还从某个地方读到,yarn在分配资源时不考虑cpu内核(即,它只根据内存需求进行分配)。
至于内存计算, yarn.nodemanager.resource.memory-mb 是按节点设置的,但 Jmeter 板通常会提供集群范围的数字,因此在划分 yarn.nodemanager.resource.memory-mbmapreduce.map.memory.mb ,将其与集群中的节点数相乘,即。

(yarn.nodemanager.resource.memory-mb*number_of_nodes_in_cluster) / mapreduce.map.memory.mb

相关问题