在 EMR MapReduce2 YARN 中分配资源(映射器数量)的问题



我有一个非常小的新 EMR 集群可以使用,我正在尝试将每个节点的并发映射器数量限制为 2。我通过将默认的 cpu-vcore 调整为 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 个映射器同时运行。除了根据公式是错误的之外,这根本没有意义,因为 I 有 4 个内核。有什么想法吗?

我还没有经历过公式的第二部分(带有 vcore 的部分)发生在我工作的小型专用集群上(尽管根据公式应该有)。我还在某处读到,YARN 在分配资源时不考虑 CPU 内核(即它仅根据内存需求进行分配)。

至于内存计算,yarn.nodemanager.resource.memory-mb是每个节点的设置,但仪表板通常会为您提供集群范围的数字,因此在将yarn.nodemanager.resource.memory-mb除以 mapreduce.map.memory.mb 之前,请将其乘以集群中的节点数,即

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

相关内容

  • 没有找到相关文章

最新更新