在 VPC 中启动集群 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 VPC 中启动集群

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

注意

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

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

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

注意

我们重新设计了 Amazon EMR 控制台,以便其易于使用。请参阅 控制台中的新增功能,以了解有关新旧控制台体验差异的信息。

New console
使用新控制台在 VPC 中启动集群
  1. 登录 Amazon Web Services Management Console 并打开 Amazon EMR 控制台,网址为 https://console.aws.amazon.com/emr

  2. 在左侧导航窗格中的 EMR on EC2 下,选择 Clusters(集群),然后选择 Create cluster(创建集群)。

  3. Networking(联网)下,转到 Virtual private cloud (VPC) [虚拟私有云(VPC)] 字段。输入 VPC 名称或选择 Browse(浏览)以选择 VPC。或者,选择 Create VPC(创建 VPC)以创建可用于集群的 VPC。

  4. 选择适用于集群的任何其他选项。

  5. 要启动集群,选择 Create cluster(创建集群)。

Old console
使用旧控制台在 VPC 中启动集群
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. 选择创建集群

  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 设备启动 Amazon EC2 实例会产生额外费用。

  6. 继续创建集群。

Amazon CLI
使用 Amazon CLI 在 VPC 中启动集群
注意

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

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

  • 要在特定子网中创建集群,请键入以下命令,将 myKey 替换为您的 Amazon 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 子命令。