本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Presto on Amazon EMR 的考量
當您執行 Presto
Presto 命令列可執行檔
在 Amazon EMR 中,PrestoDB 和 Trino 都使用相同的命令列可執行檔 presto-cli
,如以下範例所示。
presto-cli --catalog hive
不可設定的 Presto 部署屬性
您使用的 Amazon EMR 版本決定了可用的 Presto 部署組態。如需有關這些組態屬性的詳細資訊,請參閱 Presto 文件中的部署 Prestoproperties
檔案的不同組態選項。
檔案 | 可設定 |
---|---|
|
PrestoDB:在 Amazon EMR 版本 4.0.0 及更高版本中可設定。使用 Trino (PrestoSQL):在 Amazon EMR 版本 6.1.0 及更高版本中可設定。使用 |
|
PrestoDB:在 Amazon EMR 版本 4.0.0 及更高版本中可設定。使用 Trino (PrestoSQL):在 Amazon EMR 版本 6.1.0 及更高版本中可設定。使用 |
|
PrestoDB:在 Amazon EMR 版本 4.1.0 及更高版本中可設定。使用 Trino (PrestoSQL):在 Amazon EMR 版本 6.1.0 及更高版本中可設定。使用 |
|
PrestoDB:在 Amazon EMR 版本 5.6.0 及更高版本中可設定。使用 Trino (PrestoSQL):在 Amazon EMR 版本 6.1.0 及更高版本中可設定。使用 |
|
不可設定。 |
PrestoDB 和 Trino 安裝
應用程式名稱 Presto 繼續被用來在叢集上安裝 PrestoDB。若要在叢集上安裝 Trino,請使用應用程式名稱 Trino (或在舊版 Amazon EMR 中使用 PrestoSQL)。
您可以安裝 PrestoDB 或 Trino,但您不能在單個叢集上同時安裝兩者。如果在嘗試建立叢集時同時指定 PrestoDB 和 Trino,會發生驗證錯誤而且叢集建立請求將會失敗。
EMRFS 和普雷斯托 3 配置 FileSystem
在 Amazon EMR 版本 5.12.0 及更高版本中,PrestoDB 可以使用 EMRFS。這是預設組態。在 Amazon EMR 版本 6.1.0 及更高版本中,EMRFS 還是 Trino (PrestoSQL) 的預設檔案系統。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的 EMR 檔案系統 (EMRFS)。使用早期版本的 Amazon EMR,PrestoS3 FileSystem 是唯一的組態選項。
您可以使用安全組態來設定 Amazon S3 中的 EMRFS 資料加密。您也可以向 Amazon S3 請求使用 EMRFS 的 IAM 角色。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的了解加密選項和設定向 Amazon S3 請求使用 EMRFS 的 IAM 角色。
注意
如果您使用 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
中建立 symlink 以連線至現有 /usr/share/aws/emr/emrfs/conf/emrfs-site.xml
檔案。然後重新啟動 presto-server 程序 (sudo presto-server stop
在 sudo presto-server start
之前)。
您可以覆寫 EMRFS 預設值,然後改用預設值 S3。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 EMR 版本 5.12.0 和更高版本中可透過最終使用者模擬存取 HDFS。如需詳細資訊,請參閱 Presto 文件中的最終使用者模擬presto-config
組態分類變更此設定,請將 hive.hdfs.impersonation.enabled
屬性設為 false
。
Presto Web 界面的預設連接埠
依預設,Amazon EMR 會在 Presto 協調器上將 Presto Web 界面設定為使用連接埠 8889 (針對 PrestoDB 和 Trino).。若要變更連接埠,則使用 presto-config
組態分類來設定 http-server.http.port
屬性。如需詳細資訊,請參閱 Presto 文件中部署 Presto 一節的設定屬性
某些版本中 Hive 儲存貯體執行的問題
Presto 152.3 版有 Hive 儲存貯體執行的問題,此問題會在某些情況下,造成 Presto 查詢效能大幅降低。Amazon 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" } } ]