翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Trino での耐障害性実行
耐障害性実行は、クラスターがクエリの失敗を軽減するために使用できる Trino のメカニズムです。これを実現するには、クエリやそのコンポーネントタスクが失敗したときに再試行します。耐障害性実行が有効になると、中間交換データがスプールされ、クエリの実行中にワーカーが停止したり、その他の障害が発生したりした場合に、別のワーカーがそのデータを再利用できます。
Trino での耐障害性実行について詳しくは、Trino ブログの「Project Tardigrade delivers ETL at Trino speeds to early users
設定
耐障害性実行はデフォルトでは無効になっています。この機能を有効にするには、以下のように、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 にスプールすることをお勧めします。HDFS を使用する交換マネージャーには、次の設定を行うことができます。
設定 | 説明 | デフォルト設定 |
---|---|---|
|
HDFS ストレージのブロックサイズ |
4 MB |
|
HDFS を設定するファイルパスのリスト |
|
その他の耐障害性実行設定プロパティ、および Amazon S3 またはその他の Amazon S3 互換システムをスプール用に設定する方法については、Trino ドキュメントの「Fault-tolerant execution
考慮事項と制限事項
-
耐障害性実行を有効にすると、
retry-policy
が設定されているときにwrite
をサポートしていないコネクタのwrite
操作は無効になります。Amazon EMR リリース 6.9.0 では、Delta Lake、Hive および Iceberg の各コネクタはretry-policy
によるwrite
操作をサポートしています。 -
交換マネージャーを使用して高コストの I/O 操作を実行すると、交換マネージャーが中間データを外部ストレージにスプールする間、クエリのパフォーマンスが低下する可能性があります。