本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon 上使用 Presto 的注意事项 EMR
在亚马逊EMR上运行 Presto 时,
Presto 命令行可执行文件
在亚马逊中EMR,PrestoDB 和 Trino 都使用相同的命令行可执行文件presto-cli
,如下例所示。
presto-cli --catalog hive
不可配置的 Presto 部署属性
您EMR使用的亚马逊版本决定了可用的 Presto 部署配置。有关这些配置属性的更多信息,请参阅 Presto 文档中的 部署 Prestoproperties
文件的不同配置选项。
文件 | 可配置 |
---|---|
|
PrestoDB:可在EMR亚马逊 4.0.0 及更高版本中进行配置。使用 Trino(PrestoSQL):可在亚马逊 6.1.0 及EMR更高版本中进行配置。使用 |
|
PrestoDB:可在EMR亚马逊 4.0.0 及更高版本中进行配置。使用 Trino(PrestoSQL):可在亚马逊 6.1.0 及EMR更高版本中进行配置。使用 |
|
PrestoDB:可在EMR亚马逊 4.1.0 及更高版本中进行配置。使用 Trino(PrestoSQL):可在亚马逊 6.1.0 及EMR更高版本中进行配置。使用 |
|
PrestoDB:可在EMR亚马逊 5.6.0 及更高版本中进行配置。使用 Trino(PrestoSQL):可在亚马逊 6.1.0 及EMR更高版本中进行配置。使用 |
|
不可配置。 |
PrestoDB 和 Trino 安装
继续使用应用程序名称 Presto 在集群上安装 PrestoDB。要在集群上安装 Trino,请使用应用程序名称 Trino(或旧版本的亚马逊SQL中的 Prest o)。EMR
您可以安装 PrestoDB 或 Trino,但不能在同一个集群上同时安装两者。如果在尝试创建集群时同时指定了 PrestoDB 和 Trino,则会出现验证错误,并且集群创建请求将会失败。
EMRFS和 Presto FileSystem S3 配置
在亚马逊 5.12.0 及更高EMR版本中,PrestoDB 可以使用。EMRFS这是默认配置。 EMRFS也是亚马逊 6.1.0 及更高EMR版本中 Trino (PrestoSQL) 的默认文件系统。有关更多信息,请参阅《Amazon EMR 管理指南》中的EMR文件系统 (EMRFS)。对于早期版本的亚马逊EMR,PrestoS3 FileSystem 是唯一的配置选项。
您可以使用安全配置为 Amazon S3 中的EMRFS数据设置加密。您也可以使用IAM角色向 Amazon S3 EMRFS 发出请求。有关更多信息,请参阅 Amazon EMR管理指南中的了解加密选项和为向 Amazon S3 发出的EMRFS请求配置IAM角色。
注意
如果您使用亚马逊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默认值,改用 PrestoS3 FileSystem 。为此,请使用 presto-connector-hive
配置分类将 hive.s3-file-system-type
设置为 PRESTO
,如以下示例所示。有关更多信息,请参阅 配置应用程序。
[ { "Classification": "presto-connector-hive", "Properties": { "hive.s3-file-system-type": "PRESTO" } } ]
如果你使用 PrestoS3FileSystem,请使用presto-connector-hive
配置分类或用trino-connector-hive
于 Trino 来配置 PrestoS3 属性。FileSystem 有关可用属性的更多信息,请参阅 Presto 文档中“Hive 连接器”部分的 Amazon S3 配置
终端用户模拟的默认设置
默认情况下,Amazon 5.12.0 及更高EMR版本允许通过模拟最终用户进行访问。HDFS有关更多信息,请参阅 Presto 文档中的终端用户模拟presto-config
配置分类更改此设置,请将 hive.hdfs.impersonation.enabled
属性设置为 false
。
Presto Web 界面的默认端口
默认情况下,亚马逊EMR将 Presto 协调器上的 Presto 网页界面配置为使用端口 8889(用于 PrestoDB 和 Trino)。要更改端口,请使用 presto-config
配置分类设置 http-server.http.port
属性。有关更多信息,请参阅 Presto 文档的部署 Presto 部分中的配置属性
某些版本中的 Hive 存储桶执行问题
Presto 发行版 152.3 存在一个与 Hive 存储桶执行有关的问题,此问题在某些情况下可能会显著降低 Presto 的查询性能。亚马逊EMR版本 5.0.3、5.1.0 和 5.2.0 包含此版本的 Presto。要解决此问题,请使用 presto-connector-hive
配置分类将 hive.bucket-execution
属性设置为 false
,如以下示例所示。
[ { "Classification": "presto-connector-hive", "Properties": { "hive.bucket-execution": "false" } } ]