教程设置:开发终端节点教程的先决条件 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

教程设置:开发终端节点教程的先决条件

开发终端节点创建了一个环境,在该环境中,您可以通过各种方式交互式地测试和调试 ETL 脚本(在将它们作为 AWS Glue 任务运行前)。本节中的教程演示了如何使用不同的 IDE 执行此操作。所有这些教程都假定您已设置开发终端节点并爬网示例数据,以使用以下章节中的步骤在 AWS Glue 数据目录 中创建表。

由于您在一些情况下只使用 Amazon Simple Storage Service (Amazon S3) 数据,在另一些情况下混合使用 JDBC 和 Amazon S3 数据,您将分别设置一个不在 Virtual Private Cloud (VPC) 中和一个在 Virtual Private Cloud (VPC) 中的开发终端节点。

对教程中使用的示例数据进行爬网

第一步是创建一个爬网程序,它可以对某些示例数据进行爬网并在 Data Catalog 的表中记录有关该数据的元数据。所使用的示例数据提取自 http://everypolitician.org/,针对教程进行了轻微修改。它包含有关美国议员及其在美国众议院和参议院中占有的席位的数据 (JSON 格式)。

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Glue 控制台:https://console.amazonaws.cn/glue/

    在 AWS Glue 控制台的导航窗格中选择 Databases (数据库),然后选择 Add database (添加数据库)。将数据库命名为 legislators

  2. 选择 Crawlers (爬网程序),然后选择 Add crawler (添加爬网程序)。将爬网程序命名为 legislator_crawler,然后选择 Next (下一步)

  3. 接受默认爬网程序源类型(Data stores (数据存储))并单击 Next (下一步)

  4. S3 保留为数据存储。在 Crawl data in (对以下位置的数据进行爬网) 中,选择 Specified path in another account (另一个账户中的指定路径)。然后在 Include path (包含路径) 框中,输入 s3://awsglue-datasets/examples/us-legislators/all。选择 Next (下一步),再选择 Next (下一步) 以确认您不想添加另一个数据存储。

  5. 提供爬网程序运行时代入的 IAM 角色。

    提供一个可访问 s3://awsglue-datasets/examples/us-legislators/all 的角色,或选择 Create an IAM role (创建 IAM 角色) 并输入一个名称以创建有权访问该位置的角色。

  6. 选择 Next (下一步),然后再次选择 Next (下一步) 以确认此爬网程序将在需要时运行。

  7. 对于 Database (数据库),选择 legislators 数据库。选择 Next (下一步),然后选择 Finish (完成) 以完成新爬网程序的创建。

  8. 再次在导航窗格中选择 Crawlers (爬网程序)。选中新 legislator_crawler 爬网程序旁的复选框,然后选择 Run crawler (运行爬网程序)。

  9. 在导航窗格中选择 Databases (数据库)。选择 legislators 数据库,然后选择 Tables in legislators (议员表)。您应该在 Data Catalog 中看到爬网程序创建的 6 个表,其中包含爬网程序检索到的元数据。

为 Amazon S3 数据创建开发终端节点

接下来一步是为 Amazon S3 数据创建开发终端节点。当您使用 JDBC 数据源或目标时,必须使用 VPC 创建开发终端节点。但是,在本教程中,如果您只想访问 Amazon S3,则不必如此。

  1. 在 AWS Glue 控制台中,选择 Dev endpoints (开发终端节点)。选择 Add endpoint (添加终端节点)。

  2. 指定终端节点名称,如 demo-endpoint

  3. 选择一个 IAM role (IAM 角色),该角色与您用于运行 AWS Glue ETL 任务的 IAM 角色具有相似的权限。有关更多信息,请参阅步骤 2:为 AWS Glue 创建 IAM 角色。选择 Next

  4. Networking (网络) 中,将 Skip networking information (跳过网络信息) 保持选中状态,然后选择 Next (下一步)。

  5. SSH Public Key (SSH 公有密钥) 中,输入由 SSH 密钥生成器程序(如 ssh-keygen)(不要使用 Amazon EC2 密钥对)生成的公有密钥。生成的公有密钥将导入到您的开发终端节点。保存相应的私有密钥以在稍后使用 SSH 连接到开发终端节点。选择 Next。有关更多信息,请参阅 Wikipedia 中的 ssh-keygen

    注意

    在 Microsoft Windows 上生成密钥时,使用当前版本的 PuTTYgen 并从 PuTTYgen 窗口将公有密钥粘贴到 AWS Glue 控制台中。生成 RSA 密钥。不要使用公有密钥上传文件,而改用在字段 Public key for pasting into OpenSSH authorized_keys file (要粘贴到 OpenSSH authorized_keys 文件中的公有密钥) 中生成的密钥。可在 PuTTY 中使用相应的私有密钥 (.ppk) 来连接到开发终端节点。要在 Windows 上使用 SSH 连接到开发终端节点,请使用 PuTTYgen Conversion (转换) 菜单将私有密钥从 .ppk 格式转换为 OpenSSH .pem 格式。有关更多信息,请参阅使用 PuTTY 从 Windows 连接到 Linux 实例

  6. Review (审核) 中,选择 Finish (完成)。在开发终端节点创建后,等待其预置状态转为 READY (就绪)。

创建要用于输出的 Amazon S3 位置

如果您还没有存储桶,请按照创建存储桶中的说明进行操作以在 Amazon S3 中设置一个存储桶,您可以在其中保存来自示例 ETL 脚本的输出。

使用 VPC 创建开发终端节点

虽然本教程不需要,但如果您的 ETL 语句同时访问 Amazon S3 和 JDBC 数据存储,则需要 VPC 开发终端节点。在这种情况下,当您创建开发终端节点时,请指定包含您的 JDBC 数据存储的 Virtual Private Cloud (Amazon VPC) 的网络属性。在开始之前,请按针对开发终端节点设置您的环境中所述设置您的环境。

  1. 在 AWS Glue 控制台中,选择导航窗格中的 Dev endpoints (开发终端节点)。然后选择 Add endpoint (添加终端节点)。

  2. 指定终端节点名称,如 vpc-demo-endpoint

  3. 选择一个 IAM role (IAM 角色),该角色与您用于运行 AWS Glue ETL 任务的 IAM 角色具有相似的权限。有关更多信息,请参阅步骤 2:为 AWS Glue 创建 IAM 角色。选择 Next

  4. Networking (网络) 中,指定 Amazon VPC、子网和安全组。此信息用于创建可以安全地连接到您的数据资源的开发终端节点。在填写终端节点的属性时,请考虑以下建议:

    • 如果您已设置一个与您的数据存储的连接,您可以使用同一连接确定您的终端节点的 Amazon VPC、子网和安全组。否则,请分别指定这些参数。

    • 确保您的 Amazon VPC 将 Edit DNS hostnames (编辑 DNS 主机名) 设置为 yes (是)。此参数可在 Amazon VPC 控制台 (https://console.amazonaws.cn/vpc/) 中设置。有关更多信息,请参阅在 VPC 中设置 DNS

    • 在本教程中,请确保您选择的 Amazon VPC 有一个 Amazon S3 VPC 终端节点。有关如何创建 Amazon S3 VPC 终端节点的信息,请参阅Amazon S3 的 Amazon VPC 终端节点

    • 为您的开发终端节点选择公有子网。您可以通过向 Internet 网关添加路由来将一个子网设为公有子网。对于 IPv4 流量,请创建一个 Destination (目的地) 为 0.0.0.0/0Target (目标) 为 Internet 网关 ID 的路由。您的子网的路由表应与 Internet 网关 (而不是 NAT 网关) 关联。此信息可在 Amazon VPC 控制台 (https://console.amazonaws.cn/vpc/) 中设置。例如:

      具有 Internet 网关的路由表的示例。

      有关更多信息,请参阅 Internet 网关的路由表。有关如何创建 Internet 网关的信息,请参阅 Internet 网关

    • 确保您选择具有入站自引用规则的安全组。此信息可在 Amazon VPC 控制台 (https://console.amazonaws.cn/vpc/) 中设置。例如:

      自引用入站规则的示例。

      有关如何设置子网的更多信息,请参阅针对开发终端节点设置您的环境

    选择 Next

  5. SSH Public Key (SSH 公有密钥) 中,输入由 SSH 密钥生成器程序(不要使用 Amazon EC2 密钥对)生成的公有密钥。保存相应的私有密钥以在稍后使用 SSH 连接到开发终端节点。选择 Next

    注意

    在 Microsoft Windows 上生成密钥时,使用当前版本的 PuTTYgen 并从 PuTTYgen 窗口将公有密钥粘贴到 AWS Glue 控制台中。生成 RSA 密钥。不要使用公有密钥上传文件,而改用在字段 Public key for pasting into OpenSSH authorized_keys file (要粘贴到 OpenSSH authorized_keys 文件中的公有密钥) 中生成的密钥。可在 PuTTY 中使用相应的私有密钥 (.ppk) 来连接到开发终端节点。要在 Windows 上使用 SSH 连接到开发终端节点,请使用 PuTTYgen Conversion (转换) 菜单将私有密钥从 .ppk 格式转换为 OpenSSH .pem 格式。有关更多信息,请参阅使用 PuTTY 从 Windows 连接到 Linux 实例

  6. Review (审核) 中,选择 Finish (完成)。在开发终端节点创建后,等待其预置状态转为 READY (就绪)。

您现在已准备好尝试本节中的教程: