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

设置 VPC 以托管集群

您必须先创建 VPC 和子网,然后才能在 VPC 中启动集群。对于公有子网,您必须创建一个 Internet 网关并将它连接到子网。以下说明介绍如何创建能够托管 Amazon EMR 集群的 VPC。

为 Amazon EMR 集群创建带有子网的 VPC
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在页面右上角,为 VPC 选择 Amazon Web Services 区域

  3. 选择 Create VPC(创建 VPC)。

  4. VPC settings(VPC 设置)页面上,选择 VPC and more(VPC 等)。

  5. Name tag auto-generation(名称标签自动生成)下,启用 Auto-generate(自动生成)然后输入 VPC 的名称。这可帮助您在创建 VPC 和子网后在 Amazon VPC 控制台中识别它们。

  6. IPv4 CIDR block(IPv4 CIDR 块)字段中,为 VPC 输入私有 IP 地址空间,以确保正确解析 DNS 主机名;否则,可能会出现 Amazon EMR 集群故障。该地址空间包括以下 IP 地址范围:

    • 10.0.0.0 - 10.255.255.255

    • 172.16.0.0 - 172.31.255.255

    • 192.168.0.0 - 192.168.255.255

  7. Number of Availability Zones (AZs)(可用区数量)下,选择要在其中启动子网的可用区数量。

  8. Number of public subnets(公有子网数量)下,选择要添加到 VPC 的单个公有子网。如果集群中使用的数据可在 Internet 上(例如,在 Amazon S3 或 Amazon RDS 中)使用,则只需使用公有子网,无需添加私有子网。

  9. Number of private subnets(私有子网数量)下,选择要添加到 VPC 的私有子网数量。如果您的应用程序数据存储在您自己的网络中(例如,在 Oracle 数据库中),则选择一个或多个私有子网。对于私有子网中的 VPC,所有 Amazon EC2 实例都必须至少有一个通过弹性网络接口到 Amazon EMR 的路由。在控制台中,将自动为您进行配置。

  10. NAT gateways(NAT 网关)下,可选择添加 NAT 网关。仅当您的私有子网需要与 Internet 通信的情况下,才需要使用它们。

  11. VPC endpoints(VPC 端点)下,选择向子网添加 Amazon S3 的端点。

  12. 验证是否已选中 Enable DNS hostnames(启用 DNS 主机名)和 Enable DNS resolution(启用 DNS 解析)。有关更多信息,请参阅将 DNS 与您的 VPC 一起使用

  13. 选择 Create VPC(创建 VPC)。

  14. 状态窗口会显示工作的进度。工作完成后,选择 View VPC(查看 VPC)导航到 Your VPCs(您的 VPC)页面,该页面将显示默认 VPC 和刚创建的 VPC。您创建的 VPC 是非默认 VPC,因此 Default VPC 列将显示 No

  15. 如果您想将 VPC 与不包含域名的 DNS 条目相关联,请导航到 DHCP option sets(DHCP 选项集),选择 Create DHCP options set(创建 DHCP 选项集)然后省略域名。创建选项集后,导航到新 VPC,选择 Actions(操作)菜单下的 Edit DHCP options set(编辑 DHCP 选项集),然后选择新选项集。创建了 DNS 选项集之后,您无法使用控制台编辑域名。

    这是针对 Hadoop 和相关应用程序的最佳做法,可确保解析节点的完全限定域名 (FQDN)。要确保正确解析 DNS,请配置 VPC,使其包含将参数设置为以下值的 DHCP 选项集:

    • domain-name = ec2.internal

      如果您所在的区域是美国东部(弗吉尼亚北部),请使用 ec2.internal。对于其它区域,请使用 region-name.compute.internal。例如,在 us-west-2 中,请使用 us-west-2.compute.internal。对于 Amazon GovCloud (US-West) 区域,请使用 us-gov-west-1.compute.internal

    • domain-name-servers = AmazonProvidedDNS

    有关更多信息,请参阅《Amazon VPC 用户指南》中的 DHCP 选项集

  16. 创建 VPC 之后,转到 Subnets(子网)页面并记下新 VPC 的一个子网的 Subnet ID(子网 ID)。在该 VPC 中启动 Amazon EMR 集群时,您将使用此信息。