在 Amazon EMR 中使用 EMR 托管扩展功能 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon EMR 中使用 EMR 托管扩展功能

利用 Amazon EMR 5.30.0 及更高版本(Amazon EMR 6.0.0 除外),您可以启用 EMR 托管扩展,以根据工作负载自动增加或减少集群中实例或单元的数量。EMR 会持续评估集群指标,以便做出扩展决策,从而优化集群的成本和速度。此功能适用于由实例组或实例队列组成的集群。

您需要为托管扩展配置以下参数。该限制仅适用于核心节点和任务节点。初始配置后,无法扩展主节点。

  • 最低(MinimumCapacityUnits) — 集群中允许的 EC2 容量的下限。它通过实例组的虚拟中央处理单元 (vCPU) 核心或实例进行测量。它通过例如车队的单位进行测量。

  • 最高(MaximumCapacityUnits) — 群集中允许的 EC2 容量的上边界。它通过实例组的虚拟中央处理单元 (vCPU) 核心或实例进行测量。它通过例如车队的单位进行测量。

  • 按需限制(MaximumOnDemandCapacityUnits)(可选)— 集群中按需市场类型允许 EC2 容量的上限。如果未指定此参数,则默认为MaximumCapacityUnits

    此参数用于在按需实例和 Spot 实例之间拆分容量分配。例如,如果您将最小参数设置为 2 个实例,最大参数设置为 100 个实例,按需限制为 10 个实例,则 EMR 管理扩展可扩展至 10 个按需实例,并将剩余容量分配给竞价型实例。有关更多信息,请参阅 节点分配方案

  • 最大核心节点(MaximumCoreCapacityUnits) (可选) — 集群中核心节点类型允许 EC2 容量的上边界。如果未指定此参数,则默认为MaximumCapacityUnits

    此参数用于在核心节点和任务节点之间分配容量。例如,如果将最小参数设置为 2 个实例(最大值为 100 个实例),最大核心节点为 17 个实例,则 EMR 管理扩展可扩展至 17 个核心节点,并将剩余的 83 个实例分配给任务节点。有关更多信息,请参阅 节点分配方案

有关托管扩展参数的更多信息,请参阅。ComputeLimits

注意事项和限制

  • EMR 托管扩展当前在 22 个 AWS 区域中可用:美国东部(弗吉尼亚和俄亥俄州)、美国西部(俄勒冈和加利福尼亚北部)、南美(圣保罗)、欧洲(法兰克福、爱尔兰、伦敦、米兰、巴黎和斯德哥尔摩)、亚太(香港、孟买、首尔、新加坡、悉尼和东京)、非洲)、非洲(巴林)、非洲(开普敦)由新网运营, 中国 (宁夏) 由农村妇女理事会经营.

  • 未安装 Presto 的 5.30.0 和 5.30.1 群集上的托管扩展操作可能会导致应用程序故障或导致统一的实例组或实例队列保留在ARRESTED状态,特别是当缩小操作之后快速执行向上扩展操作时。

    作为解决方法,即使您的作业不需要 Presto,也可以在创建集群时选择 Presto 作为要安装的应用程序。

  • EMR 托管扩展仅适用于 YARN 应用程序,如 Spark、Hadoop、Hive 和 Flink。它目前不支持不基于 YARN 的应用程序,如 Presto。

  • 当您为 EMR 托管扩展设置最大核心节点和按需限制时,请考虑实例组和实例队列之间的差异。每个实例组由相同的实例类型和相同的实例采购选项组成:按需或即价。对于每个实例队列,您可以指定最多 5 个实例类型,这些类型可预配置为按需实例和 Spot 实例。有关更多信息,请参阅 。使用实例队列或统一实例组创建集群实例队列选项, 和节点分配方案

  • 在 EMR 5.30.0 及更高版本上,如果在主安全组上删除默认 “全部允许” 出站规则为 0.0.0.0/,则必须至少添加一个规则,以允许出站 TCP 连接到端口 (9443) 上的服务访问安全组。同样,您的服务访问安全组应允许端口 9443 上的入站 TCP 流量来自主安全组,以使受管扩展工作。请参阅适用于主实例(私有子网)的 Amazon EMR 托管的安全组

  • 您可以使用 AWS CloudFormation 配置 EMR 托管扩展功能。有关更多信息,请参阅 。AWS::EMR::Cluster中的AWS CloudFormation 用户指南