本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Presto 上的 Amazon EMR 注意事项
在 上运行
Presto 命令行可执行文件
在 中Amazon EMR,PrestoDB和 PrestoSQL 使用相同的命令行可执行文件 presto-cli
,如以下示例所示。
presto-cli --catalog hive
有些 Presto 部署属性不可配置
根据您使用的 Amazon EMR 的版本,某些 Presto 部署配置可能不可用。有关这些属性的更多信息,请参阅 Presto 文档中的properties
文件的配置状态。
File | 可配置 |
---|---|
|
PrestoDB可在 Amazon EMR 发行版 4.0.0 及更高版本中配置。使用 PrestoSQL可在 Amazon EMR 版本 6.1.0 及更高版本中配置。使用 |
|
PrestoDB可在 Amazon EMR 发行版 4.0.0 及更高版本中配置。使用 PrestoSQL可在 Amazon EMR 版本 6.1.0 及更高版本中配置。使用 |
|
PrestoDB可在 Amazon EMR 发行版 4.1.0 及更高版本中配置。使用 PrestoSQL可在 Amazon EMR 版本 6.1.0 及更高版本中配置。使用 |
|
PrestoDB可在 Amazon EMR 版本 5.6.0 及更高版本中配置。使用 PrestoSQL可在 Amazon EMR 版本 6.1.0 及更高版本中配置。使用 |
|
不可配置。 |
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-type
PRESTO
,如以下示例所示。有关更多信息,请参阅配置应用程序。
[ { "Classification": "presto-connector-hive", "Properties": { "hive.s3-file-system-type": "PRESTO" } } ]
如果您使用 PrestoS3FileSystem请使用presto-connector-hive
配置分类 或 prestosql-connector-hive
for PrestoSQL 来配置 PrestoS3FileSystem 属性。有关可用属性的更多信息,请参阅 Presto 文档的“Hive 连接器”部分中的
Amazon S3 配置
最终用户模拟的默认设置
默认情况下,Amazon EMR 5.12.0 版及更高版本支持用于访问 HDFS 的最终用户模拟。有关更多信息,请参阅 Presto 文档中的最终用户模拟presto-config
配置分类将 hive.hdfs.impersonation.enabled
属性设置为 false
来更改此设置。
Presto Web 界面的默认端口
默认情况下, 将 Presto 协调器上的 Presto Web 界面Amazon EMR配置为使用端口 8889(对于 PrestoDB 和 PrestoSQL
您可以使用 presto-config
配置分类设置 http-server.http.port
属性来更改端口。有关更多信息,请参阅 Presto 文档的
某些版本中的 Hive 存储桶执行问题
Presto 版本 152.3 存在 Hive 存储桶执行问题,在某些情况下,此问题会导致 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" } } ]