Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon VPC 选项

在 VPC 中启动 EMR 集群时,您可以在公有子网或私有子网中启动它。配置上存在少量明显区别,具体取决于您为集群选择的子网类型。

公有子网

公有子网中的 EMR 集群需要已连接的 Internet 网关。这是因为 Amazon EMR 集群必须访问 AWS 服务和 Amazon EMR。如果可利用某项服务 (如 Amazon S3) 创建 VPC 终端节点,则可使用该终端节点访问这些服务,而不是通过 Internet 网关访问公有终端节点。此外,Amazon EMR 无法通过网络地址转换 (NAT) 设备与公有子网中的集群通信。为此,需要一个 Internet 网关,但您仍可在更复杂的场景中为其他流量使用 NAT 实例或网关。

如果您不希望其他 AWS 资源连接到 Internet 网关,则可以在 VPC 内创建的私有子网中启动这些组件。

在公有子网中运行的集群将使用两个安全组,即 ElasticMapReduce-master 和 ElasticMapReduce-slave,它们分别控制对主实例组和从属实例组的访问。

公有子网安全组

安全组名称 说明 打开入站端口 打开出站端口
ElasticMapReduce-master 适用于公有子网中集群的主实例组的安全组。 TCP

0-65535

8443

22

UDP

0-65535

全部
ElasticMapReduce-slave 适用于公有子网中集群的从属实例组 (包含核心和任务节点) 的安全组。 TCP

0-65535

UDP

0-65535

全部

主实例组包含集群的主节点,而从属组包含集群的任务和核心节点。集群中的所有实例都通过 VPC 终端节点或 Internet 网关连接到 Amazon S3。目前不支持 VPC 终端节点的其他 AWS 服务仅使用 Internet 网关。

下图说明 Amazon EMR 集群如何在带公有子网的 VPC 中运行。该集群能够通过 Internet 网关连接到其他 AWS 资源,如 Amazon S3 存储桶。

 VPC 上的集群

下图演示如何设置 VPC,以便 VPC 中的集群可以访问您自己的网络中的资源 (如 Oracle 数据库)。

 设置 VPC 和集群以访问本地 VPN 资源

私有子网

可使用私有子网启动 AWS 资源,而无需子网具有已连接的 Internet 网关。例如,这可能对在后端使用这些私有资源的应用程序很有用。随后,这些资源可使用位于具有已连接的 Internet 网关的另一个子网中的 NAT 实例发出出站流量。有关此场景的更多信息,请参阅场景 2:带有公有子网和私有子网 (NAT) 的 VPC

重要

Amazon EMR 仅支持在 4.2 版或更高版本中的私有子网中启动集群。

以下是公有子网中的区别:

  • 要访问未提供 VPC 终端节点的 AWS 服务,您仍必须使用 NAT 实例或 Internet 网关。目前,VPC 端点唯一支持的服务是 Amazon S3。

  • 您至少必须在 Amazon S3 中提供到 Amazon EMR 服务日志存储桶和 Amazon Linux 存储库的路由。有关更多信息,请参阅 私有子网的最低 Amazon S3 策略

  • 如果您使用 EMRFS 功能,则需要有一个 Amazon S3 VPC 端点和一个从私有子网到 DynamoDB 的路由。

  • 调试仅在您提供一个从私有子网到公有 Amazon SQS 终端节点的情况下起作用。

  • 仅支持使用 AWS Management Console在公有子网中通过 NAT 实例或网关创建私有子网配置。为 EMR 集群添加和配置 NAT 实例和 Amazon S3 VPC 端点的最简单方法是,使用 Amazon EMR 控制台中的 VPC Subnets List 页面。要配置 NAT 网关,请遵循 Amazon Virtual Private Cloud 用户指南中名为“NAT 网关”的一节中概述的过程。

  • 您无法利用现有 EMR 集群将子网从公有子网更改为私有子网,反之亦然。要在私有子网中找到 EMR 集群,则必须在私有子网中启动该集群。

Amazon EMR 在私有子网中为集群创建不同的安全组:ElasticMapReduce-Master-Private、ElasticMapReduce-Slave-Private 和 ElasticMapReduce-ServiceAccess。

私有子网安全组

安全组名称 说明 打开入站端口 打开出站端口
ElasticMapReduce-Master-Private 适用于私有子网中集群的主实例组的安全组。 TCP

0-65535

8443

UDP

0-65535

全部
ElasticMapReduce-Slave-Private 适用于私有子网中集群的从属实例组 (包含核心和任务节点) 的安全组。 TCP

0-65535

8443

UDP

0-65535

全部
ElasticMapReduce-ServiceAccess 适用于用于允许从 Web 服务到集群的通信的 Amazon EMR 托管的弹性网络接口资源的安全组。弹性网络接口由您所有,但由 Amazon EMR 管理。 不适用 8443

有关您的集群的 NACL 的完整列表,请选择 Amazon EMR 控制台的 Cluster Details 页面上的 Security groups for MasterSecurity groups for Core & Task

下图说明如何在私有子网中配置 EMR 集群。子网外部的唯一通信是到 Amazon EMR 的通信。

 在私有子网中启动 EMR 集群

下图显示已连接到公有子网中的 NAT 实例的私有子网中的 EMR 集群的示例配置。

 具有 NAT 的私有子网

本页内容: