Trino 中的容錯執行 - Amazon EMR

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

Trino 中的容錯執行

容錯執行是 Trino 中的一種機制,叢集可用它減少查詢失敗。為此,當會在查詢或其元件任務失敗時重新嘗試。當啟動容錯執行時,會多工緩衝處理中繼交換資料,而另一個工作者會在查詢執行期間發生工作者中斷或其他錯誤時重新使用它。

有關 Trino 中的容錯執行的更多信息,請參閱 Trino 博客上的 Tardigrade 項目以 Trino 速度向早期用戶提供ETL

組態

容錯執行預設為停用。若要啟動功能,請依據所需的重試政策將 trino-config 分類中的 retry-policy 組態設為 QUERYTASK,如下所示。

{"classification": "trino-config", "properties": { "retry-policy": "QUERY" } }

當錯誤發生於工作節點時,QUERY 重試政策會指示 Trino 自動重試查詢。如果 Trino 叢集的多數工作負載包含許多小型查詢時,則建議您使用 QUERY 重試政策。

TASK 重試政策會在失敗時指示 Trino 重試個別查詢任務。建議當 Trino 執行大型批次查詢時使用此政策。叢集可更高效重試查詢中的小型任務,而非重試整個查詢。

交換管理器

交換管理器為容錯執行儲存並管理多工緩衝處理資料。它使用外部存儲來存放超出記憶體內緩衝區大小的多工緩衝處理資料。您可以設定以檔案系統為基礎的交換管理員,將多工緩衝處理的資料存放在指定位置,例如 Amazon S3、與 Amazon S3 相容的系統或。HDFS

Amazon EMR 版本 6.9.0 及更高版本包括用於配置交換管理器的trino-exchange-manager分類。這些版本也支援多HDFS工緩衝處理。

設定交換管理器

使用 trino-exchange-manager 組態分類來設定交換管理器。此分類會在內部的協調器和所有工作節點上建立 etc/exchange-manager.properties 組態檔案。該分組還會將 exchange-manager.name 組態屬性設為 filesystem

默認情況下,Amazon EMR 發布 6.9.0 和更高版本用HDFS作交易所管理器。HDFS可在 Amazon EMR EC2 叢集中使用,而多工緩衝處理預設會在trino-exchange/目錄中執行。若要使用預設設定,請設定以下組態:

{"Classification": "trino-exchange-manager" }

如果您想要提供自訂位置,請在 trino-exchange-manager 分類中設定下列屬性:

  • exchange.use-local-hdfs 設定為 true

  • 設定exchange.base-directories為中的自訂目錄位置HDFS,例如,exchange.base-directories=/exchange。如果自定義目錄尚未在中HDFS,Amazon EMR 將創建它。

HDFS交換管理器配置

根據內部測試結果,我們建議您將多工緩衝處理至本機,以便與其他雲端檔案系統相比,以HDFS獲得更好的查詢效能。您可以使用設定 Exchange 管理員的下列組態HDFS。

組態 描述 預設設定

exchange.hdfs.block-size

HDFS儲存區塊大小

4 MB

hdfs.config.resources

要設定的檔案路徑清單 HDFS

如果 exchange.use-local-hdfstrue,使用連線至 core-site.xmlhdfs-site.xml 檔案的路徑;否則請使用 null

如需了解更多容錯執行組態屬性,以及如何為多工緩衝處理設定 Amazon S3 或其他 Amazon S3 相容系統的資訊,請參閱 Trino 文件中的容錯執行

考量與限制

  • 如果您啟用容錯執行,它會在 retry-policy 已設定時停用不支援 write 的連接器 write 操作。從 Amazon EMR 版本 6.9.0 開始,三角洲湖,蜂巢和冰山連接器支持write. retry-policy

  • 如果使用交換管理器並執行昂貴的 I/O 操作,您的查詢可能在交換管理器將中繼資料多工緩衝處理至外部儲存時遇到效能降級的問題。