首页 文章

如何在Hadoop 2 YARN中计算并发#maper和#reduce?

提问于
浏览
2

我已经搜索了一段时间,我发现使用hadoop2纱线的MapReduce群集具有以下数量的并发映射并减少每个节点:

并发映射#= yarn.nodemanager.resource.memory-mb / mapreduce.map.memory.mb并发减少#= yarn.nodemanager.resource.memory-mb / mapreduce.reduce.memory.mb

但是,我已经设置了一个包含10台机器的集群,具有以下配置:

'yarn_site' => {
  'yarn.nodemanager.resource.cpu-vcores' => '32',
  'yarn.nodemanager.resource.memory-mb' => '16793',
  'yarn.scheduler.minimum-allocation-mb' => '532',
  'yarn.nodemanager.vmem-pmem-ratio' => '5',
  'yarn.nodemanager.pmem-check-enabled' => 'false'
},
'mapred_site' => {
  'mapreduce.map.memory.mb' => '4669',
  'mapreduce.reduce.memory.mb' => '4915',
  'mapreduce.map.java.opts' => '-Xmx4669m',
  'mapreduce.reduce.java.opts' => '-Xmx4915m'
}

但是在设置集群之后,hadoop允许整个集群使用6个容器 . 我忘记了什么?我究竟做错了什么?

1 回答

  • 0

    不确定这是否与您遇到的问题相同,但我遇到了类似的问题,我在核心实例组中启动了一个包含20个c3.8xlarge节点的EMR集群,同样发现在运行时集群严重未充分利用job(只有30个映射器在整个集群中同时运行,即使我的特定集群的YARN和MapReduce中的内存/ vcore配置显示可以运行超过500个并发容器) . 我在AMI 3.5.0上使用Hadoop 2.4.0 .

    事实证明,实例组由于某种原因而重要 . 当我在任务实例组中重新启动具有20个节点且仅有1个核心节点的集群时,这产生了巨大的差异 . 我同时运行了超过500个映射器(在我的情况下,映射器主要是从S3下载文件,因此不需要HDFS) .

    我不确定为什么不同的实例组类型会有所不同,因为两者都可以同等地运行任务,但显然它们的处理方式不同 .

    我想我会在这里提到它,因为我自己遇到了这个问题并且使用了不同的组类型 .

相关问题