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

在 VPC 中启动集群

在具有一个配置为托管 Amazon EMR 集群的子网后,通过在创建集群时指定关联的子网标识符来在该子网中启动集群。

注意

Amazon EMR 支持 4.2 版及更高版本中的私有子网。

启动集群时,Amazon EMR 基于集群是在 VPC 私有子网还是公有子网中启动来添加安全组。所有安全组都允许端口 8443 处的入口与 Amazon EMR 服务进行通信,但 IP 地址范围因公有子网和私有子网而异。Amazon EMR 管理这些所有安全组,而且随着时间的推移,可能需要向 AWS 范围添加其他 IP 地址。有关更多信息,请参阅使用安全组控制网络流量

为了管理 VPC 上的集群,Amazon EMR 给主节点附加了一个网络设备,并通过该设备对主节点进行管理。您可以使用 Amazon EC2 API 操作 DescribeInstances 查看此设备。如果您以任何方式修改此设备,则集群可能会失败。

使用 Amazon EMR 控制台在 VPC 中启动集群

  1. 通过以下网址打开 Amazon EMR 控制台:https://console.amazonaws.cn/elasticmapreduce/

  2. 选择 Create cluster

  3. 选择 Go to advanced options (转到高级选项)

  4. Hardware Configuration (硬件配置) 部分,对于 Network (网络),选择您之前创建的 VPC 网络的 ID。

  5. 对于 EC2 Subnet (EC2 子网),选择您之前创建的子网的 ID。

    1. 如果使用 NAT 实例和 S3 终端节点选项正确地配置您的私有子网,将在子网名称和标识符上方显示 (EMR Ready)

    2. 如果您的私有子网没有 NAT 实例和/或 S3 终端节点,则可通过选择 Add S3 endpoint and NAT instance (添加 S3 终端节点和 NAT 实例)Add S3 endpoint (添加 S3 终端节点)Add NAT instance (添加 NAT 实例) 进行配置。为您的 NAT 实例和 S3 终端节点选择所需的选项,然后选择 Configure (配置)

      重要

      要从 Amazon EMR 创建 NAT 实例,您需要 ec2:CreateRoute、ec2:RevokeSecurityGroupEgressec2:AuthorizeSecurityGroupEgresscloudformation:DescribeStackEventscloudformation:CreateStack 权限。

      注意

      为您的 NAT 设备启动 EC2 实例会产生额外费用。

  6. 继续创建集群.

使用 AWS CLI 在 VPC 中启动集群

注意

AWS CLI 未提供自动创建 NAT 实例并将该实例连接到私有子网的方法。但是,要在您的子网中创建 S3 终端节点,您可以使用 Amazon VPCCLI 命令。使用控制台可在私有子网中创建 NAT 实例和启动集群。

配置 VPC 之后,可以使用带 create-cluster 参数的 --ec2-attributes 子命令在 VPC 中启动 EMR 集群。使用 --ec2-attributes 参数可为集群指定 VPC 子网。

  • 要在特定子网中创建集群,请键入以下命令,将 myKey 替换为您的 EC2 密钥对的名称,并将 77XXXX03 替换为您的子网 ID。

    aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey,SubnetId=subnet-77XXXX03 --instance-type m5.xlarge --instance-count 3

    如果不使用 --instance-groups 参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。

    注意

    如果您之前未创建默认 Amazon EMR 服务角色和 EC2 实例配置文件,请先键入 aws emr create-default-roles 创建它们,然后再键入 create-cluster 子命令。

有关在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅 AWS CLI