AWS EMR 并行映射器?
AWS EMR Parallel Mappers?
我正在尝试确定我的 EMR 集群需要多少个节点。作为最佳实践的一部分,建议如下:
(您的作业所需的映射器总数 + 处理所用时间)/(每个实例容量 + 所需时间),如此处所述:http://www.slideshare.net/AmazonWebServices/amazon-elastic-mapreduce-deep-dive-and-best-practices-bdt404-aws-reinvent-2013,第 89 页。
问题是由于 AWS 不发布,如何确定实例将支持多少个并行映射器? https://aws.amazon.com/emr/pricing/
对不起,如果我错过了一些明显的东西。
韦恩
要确定并行映射器的数量,您需要查看来自 EMR 的名为任务配置的文档,其中 EMR 为每个实例类型都有一个预定义的配置映射集,这将确定 mappers/reducers 的数量。
http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-task-config.html
例如: 假设您有 5 个 m1.xlarge 核心节点。根据 EMR 文档中该实例类型的默认 mapred-site.xml 配置值,我们有
mapreduce.map.memory.mb = 768
yarn.nodemanager.resource.memory-mb = 12288
yarn.scheduler.maximum-allocation-mb = 12288 (same as above)
您可以简单地将后面的设置与前面的设置相除,以获得一个 m1.xlarge 节点支持的最大映射器数量 = (12288/768) = 16
因此,对于 5 节点集群,最多 16*5 = 80
个可以并行 运行 的映射器(考虑仅映射作业)。 max parallel Reducers(30) 也是如此。您可以对映射器和缩减器的组合进行类似的计算。
因此,如果您想 运行 更多并行映射器,您可以 re-size
集群或减少 mapreduce.map.memory.mb
(及其堆 mapreduce.map.java.opts
)每个节点并重新启动 NM 到
要了解上述 mapred-site.xml 属性的含义以及为什么需要进行这些计算,您可以在此处参考:
https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
注意 :如果 EMR 使用 YARN capacity scheduler
和 DefaultResourceCalculator
保持其默认配置,则上述计算和陈述为真。例如,如果您将容量调度程序配置为使用 DominantResourceCalculator
,它将考虑每个节点上的 VCPU + 内存(而不仅仅是内存)来决定映射器的并行数量。
我正在尝试确定我的 EMR 集群需要多少个节点。作为最佳实践的一部分,建议如下:
(您的作业所需的映射器总数 + 处理所用时间)/(每个实例容量 + 所需时间),如此处所述:http://www.slideshare.net/AmazonWebServices/amazon-elastic-mapreduce-deep-dive-and-best-practices-bdt404-aws-reinvent-2013,第 89 页。
问题是由于 AWS 不发布,如何确定实例将支持多少个并行映射器? https://aws.amazon.com/emr/pricing/
对不起,如果我错过了一些明显的东西。
韦恩
要确定并行映射器的数量,您需要查看来自 EMR 的名为任务配置的文档,其中 EMR 为每个实例类型都有一个预定义的配置映射集,这将确定 mappers/reducers 的数量。
http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-task-config.html
例如: 假设您有 5 个 m1.xlarge 核心节点。根据 EMR 文档中该实例类型的默认 mapred-site.xml 配置值,我们有
mapreduce.map.memory.mb = 768
yarn.nodemanager.resource.memory-mb = 12288
yarn.scheduler.maximum-allocation-mb = 12288 (same as above)
您可以简单地将后面的设置与前面的设置相除,以获得一个 m1.xlarge 节点支持的最大映射器数量 = (12288/768) = 16
因此,对于 5 节点集群,最多 16*5 = 80
个可以并行 运行 的映射器(考虑仅映射作业)。 max parallel Reducers(30) 也是如此。您可以对映射器和缩减器的组合进行类似的计算。
因此,如果您想 运行 更多并行映射器,您可以 re-size
集群或减少 mapreduce.map.memory.mb
(及其堆 mapreduce.map.java.opts
)每个节点并重新启动 NM 到
要了解上述 mapred-site.xml 属性的含义以及为什么需要进行这些计算,您可以在此处参考: https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
注意 :如果 EMR 使用 YARN capacity scheduler
和 DefaultResourceCalculator
保持其默认配置,则上述计算和陈述为真。例如,如果您将容量调度程序配置为使用 DominantResourceCalculator
,它将考虑每个节点上的 VCPU + 内存(而不仅仅是内存)来决定映射器的并行数量。