本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 上的 Presto 考量事項 EMR
當您在 Amazon 上執行 Presto
Presto 命令列可執行檔
在 Amazon 中EMR,PrestoDB 和 Trino 都使用相同的命令列可執行檔 presto-cli
,如下列範例所示。
presto-cli --catalog hive
不可設定的 Presto 部署屬性
EMR 您使用的 Amazon 版本會決定可用的 Presto 部署組態。如需有關這些組態屬性的詳細資訊,請參閱 Presto 文件中的部署 Prestoproperties
檔案的不同組態選項。
檔案 | 可設定 |
---|---|
|
PrestoDB:可在 Amazon 4.0.0 版及更新EMR版本中設定。使用 Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 |
|
PrestoDB:可在 Amazon 4.0.0 版及更新EMR版本中設定。使用 Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 |
|
PrestoDB:可在 Amazon 4.1.0 版及更新EMR版本中設定。使用 Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 |
|
PrestoDB:可在 Amazon 5.6.0 版及更新EMR版本中設定。使用 Trino (PrestoSQL):可在 Amazon 6.1.0 版及更新EMR版本中設定。使用 |
|
不可設定。 |
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 stop
在 sudo 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 組態
最終使用者模擬的預設設定
根據預設,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" } } ]