Amazon 上的 Presto 考量事項 EMR - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon 上的 Presto 考量事項 EMR

當您在 Amazon 上執行 Presto 時,請考慮下列限制EMR。

Presto 命令列可執行檔

在 Amazon 中EMR,PrestoDB 和 Trino 都使用相同的命令列可執行檔 presto-cli,如下列範例所示。

presto-cli --catalog hive

不可設定的 Presto 部署屬性

EMR 您使用的 Amazon 版本會決定可用的 Presto 部署組態。如需有關這些組態屬性的詳細資訊,請參閱 Presto 文件中的部署 Presto。下表顯示 Presto properties 檔案的不同組態選項。

檔案 可設定

log.properties

PrestoDB:可在 Amazon 4.0.0 版及更新EMR版本中設定。使用 presto-log 組態分類。

Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 prestosql-logtrino-log 組態分類。

config.properties

PrestoDB:可在 Amazon 4.0.0 版及更新EMR版本中設定。使用 presto-config 組態分類。

Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 prestosql-configtrino-config 組態分類。

hive.properties

PrestoDB:可在 Amazon 4.1.0 版及更新EMR版本中設定。使用 presto-connector-hive 組態分類。

Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 prestosql-connector-hivetrino-connector-hive 組態分類。

node.properties

PrestoDB:可在 Amazon 5.6.0 版及更新EMR版本中設定。使用 presto-node 組態分類。

Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 prestosql-nodetrino-node 組態分類。

jvm.config

不可設定。

PrestoDB 和 Trino 安裝

應用程式名稱 Presto 繼續被用來在叢集上安裝 PrestoDB。若要在叢集上安裝 Trino,請使用應用程式名稱 Trino (或在舊版 Amazon 中使用 PrestoSQLEMR)。

您可以安裝 PrestoDB 或 Trino,但您不能在單個叢集上同時安裝兩者。如果在嘗試建立叢集時同時指定 PrestoDB 和 Trino,會發生驗證錯誤而且叢集建立請求將會失敗。

EMRFS 和 PrestoS3FileSystem 組態

使用 Amazon 5.12.0 版和更新EMR版本時,PrestoDB 可以使用 EMRFS。這是預設組態。 EMRFS 也是 Amazon 6.1.0 版及更新EMR版本中 Trino (PrestoSQL) 的預設檔案系統。如需詳細資訊,請參閱《Amazon EMR管理指南》中的EMR檔案系統 (EMRFS)。使用舊版 Amazon 時EMR,PrestoS3FileSystem 是唯一的組態選項。

您可以使用安全組態來設定 Amazon S3 中EMRFS資料的加密。您也可以將 IAM 角色用於對 Amazon S3 的EMRFS請求。如需詳細資訊,請參閱《Amazon EMR管理指南》中的了解 Amazon S3 請求的加密選項和設定角色。 IAM EMRFS Amazon S3

注意

如果您使用 Amazon 5.12.0 版查詢 Amazon S3 中的基礎資料,可能會發生 Presto 錯誤。 EMR這是因為 Presto 無法從 emrfs-site.xml 中取用組態分類值。解決辦法是,在 usr/lib/presto/plugin/hive-hadoop2/ 下方建立 emrfs 子目錄,並在 usr/lib/presto/plugin/hive-hadoop2/emrfs 中建立 symlink 以連線至現有 /usr/share/aws/emr/emrfs/conf/emrfs-site.xml 檔案。然後重新啟動 presto-server 程序 (sudo presto-server stopsudo presto-server start 之前)。

您可以覆寫EMRFS預設值並使用 PrestoS3FileSystem instead。若要這樣做,請使用 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 來設定 PrestoS3FileSystem properties。如需有關可用屬性的詳細資訊,請參閱 Presto 文件中「Hive 連接器」一節的 Amazon S3 組態。這些設定不適用於 EMRFS。

最終使用者模擬的預設設定

根據預設,Amazon 5.12.0 版和更新EMR版本會啟用最終使用者模擬,以存取 HDFS。如需詳細資訊,請參閱 Presto 文件中的最終使用者模擬。若要使用 presto-config 組態分類變更此設定,請將 hive.hdfs.impersonation.enabled 屬性設為 false

Presto Web 界面的預設連接埠

根據預設,Amazon 會將 Presto 協調器上的 Presto Web 界面EMR設定為使用連接埠 8889 (適用於 PrestoDB 和 Trino)。若要變更連接埠,則使用 presto-config 組態分類來設定 http-server.http.port 屬性。如需詳細資訊,請參閱 Presto 文件中部署 Presto 一節的設定屬性

某些版本中 Hive 儲存貯體執行的問題

Presto 152.3 版有 Hive 儲存貯體執行的問題,此問題會在某些情況下,造成 Presto 查詢效能大幅降低。Amazon 5.0.3、5.1.0 和 5.2.0 EMR版包含此 Presto 版本。為解決此問題,請使用 presto-connector-hive 組態分類將 hive.bucket-execution 屬性設定為 false,如以下範例所示。

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