Amazon EMR 上的 Presto 注意事项 - Amazon EMR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon EMR 上的 Presto 注意事项

在 Amazon EMR 上运行 Presto 时,请考虑以下区别和限制。

Presto 命令行可执行文件

英寸 Amazon EMR, PrestoDB 和 PrestoSQL 都使用相同的可执行命令行, presto-cli,如下例所示。

presto-cli --catalog hive

有些 Presto 部署属性不可配置

根据您使用的 Amazon EMR 的版本,某些 Presto 部署配置可能不可用。有关这些属性的更多信息,请参阅 部署Presto 于Presto文档。下表显示了 Presto properties 文件的配置状态。

File (文件) 可配置

log.properties

PrestoDB: 可在中配置 Amazon EMR 版本4.0.0及更高版本。使用 presto-log 配置分类。

PrestoSQL: 可在中配置 Amazon EMR 版本6.1.0及更高版本。使用 prestosql-log 配置分类。

config.properties

PrestoDB: 可在中配置 Amazon EMR 版本4.0.0及更高版本。使用 presto-config 配置分类。

PrestoSQL: 可在中配置 Amazon EMR 版本6.1.0及更高版本。使用 prestosql-config 配置分类。

hive.properties

PrestoDB: 可在中配置 Amazon EMR 版本4.1.0及更高版本。使用 presto-connector-hive 配置分类。

PrestoSQL: 可在中配置 Amazon EMR 版本6.1.0及更高版本。使用 prestosql-connector-hive 配置分类。

node.properties

PrestoDB: 在 Amazon EMR 发行版 5.6.0 及更高版本中可配置。使用 presto-node 配置分类。

PrestoSQL: 可在中配置 Amazon EMR 版本6.1.0及更高版本。使用 prestosql-node 配置分类。

jvm.config

不可配置。

EMRFS和 PrestoS3FileSystem 配置

有 Amazon EMR 版本5.12.0及更高版本, PrestoDB 可以使用EMRFS,这是默认配置。有 Amazon EMR 版本6.1.0及更高版本, PrestoSQL 还使用EMRFS作为默认。有关更多信息,请参阅 https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-fs.html 中的Amazon EMR 管理指南使用 EMR 文件系统 (EMRFS)。使用早期版本, PrestoS3FileSystem 是唯一选项。

使用EMRFS有好处。您可以使用安全配置为 Amazon S3 中的 EMRFS 数据设置加密。您还可以使用 IAM 角色处理 EMRFS 对 Amazon S3 的请求。有关更多信息,请参阅 https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-data-encryption-options.html 中的 IAM了解加密选项Amazon S3和为处理 EMRFS 对 的请求配置 Amazon EMR 管理指南 角色

注意

配置问题可能会在使用 Amazon EMR 发布版 5.12.0 查询 Amazon S3 中的基础数据时导致 Presto 错误。这是因为 Presto 无法从 emrfs-site.xml 选取配置分类值。要解决此问题,请在 usr/lib/presto/plugin/hive-hadoop2/ 下创建 emrfs 子目录,在 usr/lib/presto/plugin/hive-hadoop2/emrfs 中创建指向现有 /usr/share/aws/emr/emrfs/conf/emrfs-site.xml 文件的符号链接,然后重新启动 presto-server 进程 (运行 sudo presto-server stop 后再运行 sudo presto-server start)。

您可以改写EMRFS默认值,并使用 PrestoS3FileSystem 而不是。为此,请使用 presto-connector-hive 要设置的配置分类 hive.s3-file-system-typePRESTO 如下例所示。有关更多信息,请参阅配置应用程序

[ { "Classification": "presto-connector-hive", "Properties": { "hive.s3-file-system-type": "PRESTO" } } ]

如果您使用 PrestoS3FileSystem,使用 presto-connector-hive 配置分类或 prestosql-connector-hive 为 PrestoSQL 以配置 PrestoS3FileSystem 属性。有关可用属性的更多信息,请参阅 Presto 文档的“Hive 连接器”部分中的 Amazon S3 配置。这些设置不适用于 EMRFS。

最终用户模拟的默认设置

默认情况下,Amazon EMR 5.12.0 版及更高版本支持用于访问 HDFS 的最终用户模拟。有关更多信息,请参阅 最终用户模拟 在Presto文档中。您可以使用 presto-config 配置分类将 hive.hdfs.impersonation.enabled 属性设置为 false 来更改此设置。

Presto Web 界面的默认端口

依默认, Amazon EMR 在Presto协调器上配置PrestoWeb界面以使用端口8889(用于 PrestoDB 和 PrestoSQL)。您可以使用 presto-config 配置分类以设置 http-server.http.port 属性。有关更多信息,请参阅 配置属性部署Presto 章节。

某些版本中的 Hive 存储桶执行问题

Presto版本152.3存在Hivebucket执行问题,在某些情况下导致Presto查询性能明显变慢。此版本包含在 Amazon EMR 发行版 5.0.3、5.1.0 和 5.2.0 中。为缓解此问题,请使用 presto-connector-hive 配置分类以设置 hive.bucket-execution 属性到 false 如下例所示。

[ { "Classification": "presto-connector-hive", "Properties": { "hive.bucket-execution": "false" } } ]