在 Amazon EMR 中使用 EMR 托管扩展 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

在 Amazon EMR 中使用 EMR 托管扩展

重要

我们强烈建议您使用最新的 Amazon EMR 版本来进行托管扩展。在以前的 Amazon EMR 版本中,您可能会遇到间歇性的应用程序故障或扩展延迟。此问题已在 Amazon EMR 5.33.0 和 6.3.0 中得到修复。

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

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

  • Minimum (最小)MinimumCapacityUnits)– 集群中允许的 EC2 容量的下限。它通过实例组的虚拟中央处理单元(vCPU)核心或实例进行衡量,并通过实例机群单元进行衡量。

  • Maximum (最大)MaximumCapacityUnits)– 集群中允许的 EC2 容量的上限。它通过实例组的虚拟中央处理单元(vCPU)核心或实例进行衡量,并通过实例机群单元进行衡量。

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

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

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

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

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

注意事项和限制

  • 过度使用 EBS 卷可能会导致托管扩展问题。我们建议您将 EBS 卷的利用率保持在 90% 以下。请参阅 指定额外的 EBS 存储卷

  • EMR 托管扩展目前已在 22 个Amazon区域推出:美国东部(弗吉尼亚北部和俄亥俄)、美国西部(俄勒冈和加利福尼亚北部)、南美洲(圣保罗)、欧洲(法兰克福、爱尔兰、伦敦、米兰、巴黎和斯德哥尔摩)、加拿大(中部)、亚太地区(香港、孟买、首尔、新加坡、悉尼和东京)、中东(巴林)、非洲(开普敦)、中国(北京,由光环新网运营)和中国(宁夏,由西云数据运营)。

  • Amazon CloudWatch 指标对于 Amazon EMR 托管扩展的运行至关重要。我们建议您密切监控 Amazon CloudWatch 指标,以确保数据不会丢失。有关如何配置 CloudWatch 告警以检测缺失指标的更多信息,请参阅使用 Amazon CloudWatch 告警

  • 在未安装 Presto 的 5.30.0 和 5.30.1 的集群上进行托管扩展操作可能会导致应用程序故障或导致统一的实例组或实例机群处于 ARRESTED 状态,尤其是在缩减操作之后快速执行扩展操作时。

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

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

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

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

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