

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 Trino
<a name="emr-trino-getting-started"></a>

本节中的过程介绍了如何设置 Amazon EMR 集群，以便使用 Trino 查询元存储数据来源。这些元存储库（包括 AWS Glue 数据目录）存储元数据和数据库对象并管理访问权限。这些过程涵盖先决条件、推荐的配置设置、创建连接器以及对元存储表运行查询。

**Topics**
+ [完成将 Amazon EMR 与 Trino 结合使用的先决条件步骤](emr-trino-getting-started-pre.md)
+ [使用 Trino 启动 Amazon EMR 集群](emr-trino-getting-started-launch.md)
+ [连接到 Amazon EMR 集群的主节点并运行查询](emr-trino-getting-started-connect.md)

# 完成将 Amazon EMR 与 Trino 结合使用的先决条件步骤
<a name="emr-trino-getting-started-pre"></a>

如果您尚未使用或尚未创建 Amazon EMR 集群 AWS，请在使用 Trino 创建 Amazon EMR 集群之前完成这些必备步骤。

## AWS 环境设置
<a name="emr-trino-getting-started-account"></a>

如果您还没有，请完成以下步骤来配置您的 AWS 账户：

1. 如果您还没有，请注册一个 AWS 帐户。有关更多信息，请参阅《[AWS 账户管理参考指南》中的创建AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html)*账户*。

1. 以管理用户身份登录您的账户。

1. 创建一个组并向该组分配用户。

1. 创建 Amazon EC2 密钥对，稍后您可以使用该密钥对通过 SSH 保护资源之间的通信。如果您计划连接到主节点以执行任务，则必须执行此步骤。有关更多信息，请参阅[使用 SSH 连接到 Amazon EMR 集群主节点](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)。

# 使用 Trino 启动 Amazon EMR 集群
<a name="emr-trino-getting-started-launch"></a>

下面介绍了使用 Trino 创建集群时的正确配置选择。

## 使用 Hive 连接器使数据可供查询
<a name="emr-trino-getting-started-connect-hive"></a>

您可以为 Hive 元存储配置 Trino 连接器，以便从集群查询元存储数据。元存储是一个抽象层，它将基于文件的内容或数据以表格形式呈现，从而方便查询。您必须在 Amazon EMR 中配置连接器，才能使 Hive 元存储表可供集群使用。以下过程演示了如何执行此操作：

1. 在控制 AWS 台中选择 Glue，然后根据您在 Amazon S3 中的源数据创建一个表。 AWS Glue 数据目录中的表是数据的元数据定义。在这种情况下，从源数据手动创建表并根据需要创建列很有意义。有关在 AWS Glue 中根据 Amazon S3 中的半结构化数据[创建表的更多信息，请参阅 *AWS Glue 用户指南*中的使用控制台](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html#console-tables)创建表。

1. 在创建集群时设置您的配置。选择**配置**选项卡。“配置”是您的集群的可选规范。输入配置时，添加如下示例所示的 JSON，该示例指示 Trino 使用 G AWS lue 数据目录作为表元数据的外部 Hive 元数据库：

   ```
   {
       "classification": "trino-connector-hive",
       "properties": {
           "hive.metastore": "glue"
       }
   }
   ```

   或者，在创建集群时，您可以应用**软件设置**部分中的配置。

   此外，您还可以设置其他连接器类型，例如用于连接 Apache Iceberg 的连接器。有关更多信息，请参阅《Amazon EMR 版本指南》**中的[将 Iceberg 集群与 Trino 结合使用](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-trino-cluster.html)。配置其他设置是可选的。

要继续执行入门步骤，请参阅[连接到 Amazon EMR 集群的主节点并运行查询](emr-trino-getting-started-connect.md)。

## 使用 Trino 创建集群
<a name="emr-trino-getting-started-launch-cluster-settings"></a>

下面介绍了使用 Trino 创建要使用的集群时的正确配置选择。

**重要**  
在创建集群之前，请将 AWS Glue 数据目录配置作为您的 Hive 元数据仓完成，我们建议您开始使用此配置。有关更多信息，请参阅 [使用 Hive 连接器使数据可供查询](#emr-trino-getting-started-connect-hive)。

1. 在 AWS 控制台中，从服务中选择 Amazon EMR。选择 Amazon EMR 时，如果您已有集群，则系统会列出您的 **EMR on EC2** 集群。

1. 选择**创建集群**。从这里开始构建集群的过程。

1. 为您的集群命名，然后选择一个 **Amazon EMR 发行版**。您可以为本教程选择最新的发行版。

1. 选择 **Trino** 捆绑包，其中已预先选择了 Trino 应用程序。为方便起见，如果您事先知道集群的用途，则可以设置捆绑包。否则，您可以直接选中 Trino 的复选框。

1. 对于**集群配置**，选择**统一实例组**。请继续操作并移除其他实例组。

1. 选择一个**实例类型**。通常，我们建议您选择至少具有 16 GiB 内存的实例类型。此外，对于**集群扩展和预置**，请选择**手动设置集群大小**。

1. 此时，将你的 Hive 元数据仓配置设置为指向 Glu AWS e。[使用 Hive 连接器使数据可供查询](#emr-trino-getting-started-connect-hive)部分对此进行了详细介绍。请在构建集群之前完成此操作。

1. 选择**创建集群**。它可能需要数分钟来完成。

   此处的步骤并未详细涵盖所有配置步骤。有关设置集群的更多信息，请参阅[规划、配置和启动 Amazon EMR 集群](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan.html)。

**注意**  
请勿在同一集群上同时选择 Presto 和 Trino 进行使用。它们不支持同时运行。此外，如果您运行 Trino，建议不要在集群上运行任何其他应用程序（例如 Spark）。

# 连接到 Amazon EMR 集群的主节点并运行查询
<a name="emr-trino-getting-started-connect"></a>

## 预置测试数据并配置权限
<a name="emr-trino-getting-started-pre-data"></a>

你可以使用 Glue Data Catalog 及其 Hive 元数据仓使用 AWS Trino 测试亚马逊 EMR。以下先决条件步骤介绍了如何设置测试数据（如果尚未设置）：

1. 创建一个用于通信加密的 SSH 密钥（如果尚未创建）。

1. 您可以从多个文件系统中进行选择来存储数据和日志文件。首先，创建一个 Amazon S3 存储桶。为存储桶指定一个唯一名称。创建时，请指定您创建的加密密钥。
**注意**  
选择同一区域来创建存储桶和 Amazon EMR 集群。

1. 选择您创建的存储桶。选择**创建文件夹**，并为文件夹指定一个易于记忆的名称。创建文件夹时，请选择一个安全配置。您可以选择父级的安全设置，也可以使安全设置更专业化。

1. 将测试数据添加到您的文件夹中。在本教程中，使用逗号分隔的 .csv 文件可以很好地完成此使用案例。

1. 将数据添加到 Amazon S3 存储桶后，在 Glue AWS 中配置一个表，以提供用于查询数据的抽象层。

## 连接并运行查询
<a name="emr-trino-getting-started-run"></a>

下面介绍了如何连接到运行 Trino 的集群并对其运行查询。在执行此操作之前，请确保已设置 Hive 元存储连接器（如上一过程所述），以便元存储表可见。

1. 我们建议使用 EC2 Instance Connect 连接到您的集群，因为它提供安全的连接。从集群摘要中选择**使用 SSH 连接到主节点**。连接要求安全组具有入站规则，允许通过端口 22 连接到子网中的客户端。在连接时，您还必须使用用户 **hadoop**。

1. 通过运行 `trino-cli` 来启动 Trino CLI。这使您能够使用 Trino 运行命令和查询数据。

1. 运行 `show catalogs;`。检查 **hive** 目录是否已列出。这将提供可用目录的列表，其中包含数据存储或系统设置。

1. 要查看可用的架构，请运行 `show schemas in hive;`。在这里，您可以运行 `use schema-name;` 命令并包括您的架构名称。然后，您可以运行 `show tables;` 命令来列出表。

1. 使用架构中的表名，运行类似 `SELECT * FROM table-name` 的命令来查询表。如果您已经运行该`USE`语句来连接到特定架构，则不必使用由两部分组成的表示法，例如*schema*。 *table*。