本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Trino 中的容錯執行
容錯執行是 Trino 中的一種機制,叢集可用它減少查詢失敗。為此,當會在查詢或其元件任務失敗時重新嘗試。當啟動容錯執行時,會多工緩衝處理中繼交換資料,而另一個工作者會在查詢執行期間發生工作者中斷或其他錯誤時重新使用它。
有關 Trino 中的容錯執行的更多信息,請參閱 Trino 博客上的 Tardigrade 項目以 Trino 速度向早期用戶提供ETL
組態
容錯執行預設為停用。若要啟動功能,請依據所需的重試政策將 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 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。
組態 | 描述 | 預設設定 |
---|---|---|
|
HDFS儲存區塊大小 |
4 MB |
|
要設定的檔案路徑清單 HDFS |
如果 |
如需了解更多容錯執行組態屬性,以及如何為多工緩衝處理設定 Amazon S3 或其他 Amazon S3 相容系統的資訊,請參閱 Trino 文件中的容錯執行
考量與限制
-
如果您啟用容錯執行,它會在
retry-policy
已設定時停用不支援write
的連接器write
操作。從 Amazon EMR 版本 6.9.0 開始,三角洲湖,蜂巢和冰山連接器支持write
.retry-policy
-
如果使用交換管理器並執行昂貴的 I/O 操作,您的查詢可能在交換管理器將中繼資料多工緩衝處理至外部儲存時遇到效能降級的問題。