【问题标题】:AWS EMR Parallel Mappers?AWS EMR 并行映射器?
【发布时间】:2017-01-04 01:17:31
【问题描述】:

我正在尝试确定我的 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/

对不起,如果我错过了一些明显的东西。

韦恩

【问题讨论】:

    标签: amazon-web-services amazon-emr


    【解决方案1】:

    要确定并行映射器的数量,您需要查看 EMR 中称为“任务配置”的文档,其中 EMR 为每种实例类型提供了一组预定义的映射配置,这将确定映射器/缩减器的数量。
    @ 987654321@

    例如: 假设您有 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 映射器(考虑仅映射作业)。最大并行 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 schedulerDefaultResourceCalculator 保持其默认配置,则上述计算和陈述为真。例如,如果您将容量调度程序配置为使用DominantResourceCalculator,它将考虑每个节点上的 VCPU + 内存(不仅仅是内存)来决定映射器的并行数量。

    【讨论】:

    • 非常感谢。那肯定是藏在草丛里的。
    • 当然。很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多