本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Trino 中的容錯執行
容錯執行是 Trino 中的一種機制,叢集可用它減少查詢失敗。為此,當會在查詢或其元件任務失敗時重新嘗試。當啟動容錯執行時,會多工緩衝處理中繼交換資料,而另一個工作者會在查詢執行期間發生工作者中斷或其他錯誤時重新使用它。
如需 Trino 中容錯執行的詳細資訊,請參閱 Trino 部落格上的 Project Tardigrade ETL以 Trino 速度交付給早期使用者
組態
容錯執行預設為停用。若要啟動功能,請依據所需的重試政策將 trino-config
分類中的 retry-policy
組態設為 QUERY
或 TASK
,如下所示。
{"classification": "trino-config", "properties": { "retry-policy": "
QUERY
" } }
當錯誤發生於工作節點時,QUERY
重試政策會指示 Trino 自動重試查詢。如果 Trino 叢集的多數工作負載包含許多小型查詢時,則建議您使用 QUERY
重試政策。
TASK
重試政策會在失敗時指示 Trino 重試個別查詢任務。建議當 Trino 執行大型批次查詢時使用此政策。叢集可更高效重試查詢中的小型任務,而非重試整個查詢。
交換管理器
交換管理器為容錯執行儲存並管理多工緩衝處理資料。它使用外部存儲來存放超出記憶體內緩衝區大小的多工緩衝處理資料。您可以設定以檔案系統為基礎的交換管理員,將多工緩衝處理的資料存放在指定的位置,例如 Amazon S3、Amazon S3 相容系統或 HDFS。
Amazon 6.9.0 版及更新EMR版本包含設定交換管理員的trino-exchange-manager
分類。這些版本也HDFS支援多工緩衝處理。
設定交換管理器
使用 trino-exchange-manager
組態分類來設定交換管理器。此分類會在內部的協調器和所有工作節點上建立 etc/exchange-manager.properties
組態檔案。該分組還會將 exchange-manager.name
組態屬性設為 filesystem
。
依預設,Amazon EMR6.9.0 版和更新版本HDFS會做為交換管理員使用。Amazon EMREC2叢集HDFS中提供 ,且依預設,多工處理會在 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 Exchange Manager 組態
根據內部測試結果,我們建議您將 多工緩衝處理到本機HDFS,以便比其他雲端型檔案系統有更好的查詢效能。您可以使用 為 Exchange Manager 設定下列組態HDFS。
組態 | 描述 | 預設設定 |
---|---|---|
|
HDFS 儲存體的區塊大小 |
4 MB |
|
要設定的檔案路徑清單 HDFS |
如果 |
如需了解更多容錯執行組態屬性,以及如何為多工緩衝處理設定 Amazon S3 或其他 Amazon S3 相容系統的資訊,請參閱 Trino 文件中的容錯執行
考量與限制
-
如果您啟用容錯執行,它會在
retry-policy
已設定時停用不支援write
的連接器write
操作。自 Amazon 6.9.0 EMR版起,Delta Lake、Hive 和 Iceberg 連接器支援使用write
的操作。retry-policy
-
如果使用交換管理器並執行昂貴的 I/O 操作,您的查詢可能在交換管理器將中繼資料多工緩衝處理至外部儲存時遇到效能降級的問題。