Trinoでのフォールトトレラント実行 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Trinoでのフォールトトレラント実行

フォールトトレラント実行は、クラスターがクエリの失敗を軽減するために使用できるTrinoのメカニズムです。そのために、クエリやそのコンポーネントタスクが失敗したときに再試行します。フォールトトレラント実行を有効にすると、中間交換データがスプールされ、クエリ実行中にワーカーが停止したり、その他の障害が発生した場合に、別のワーカーがそのデータを再利用できます。

Trinoでのフォールトトレラント実行の詳細については、Trinoブログの「Project TardigradeがTrinoのスピードでETLを初期のユーザーに提供する」を参照してください。

構成

フォールトトレラント実行はデフォルトで無効になっています。この機能を有効にするには、retry-policytrino-configQUERYTASK次のように分類の構成プロパティを目的の再試行ポリシーに基づいてまたはいずれかの値に設定します。

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

QUERY再試行ポリシーは、ワーカーノードでエラーが発生したときにクエリを自動的に再試行するようにTrinoに指示します。Trinoクラスターのワークロードの大部分が多数の小さなクエリで構成されている場合は、QUERY再試行ポリシーを使用することをお勧めします。

TASK再試行ポリシーは、失敗した場合に個々のクエリタスクを再試行するようにTrinoに指示します。Trinoが大規模なバッチクエリを実行する場合には、このポリシーをお勧めします。クラスターは、クエリ全体を再試行するよりも、クエリ内の小さなタスクをより効率的に再試行できます。

Exchange Manager

エクスチェンジマネージャーは、フォールトトレラント実行のためにスプールされたデータを保存および管理します。外部ストレージを使用して、メモリ内のバッファサイズを超えてこぼれたデータを保存します。スプールされたデータを Amazon S3、Amazon S3 互換システム、HDFS などの指定された場所に保存するファイルシステムベースの交換マネージャーを設定できます。

Amazon EMR リリース 6.9.0 以降には、trino-exchange-managerエクスチェンジマネージャーを設定するための分類が含まれています。これらのリリースでは HDFS のスプールもサポートしています。

エクスチェンジマネージャーの設定

trino-exchange-manager構成分類を使用して、エクスチェンジマネージャーを構成します。この分類により、etc/exchange-manager.propertiesコーディネーターとすべてのワーカーノードに設定ファイルが内部的に作成されます。また、exchange-manager.namefilesystemこの分類では構成プロパティがに設定されます。

デフォルトでは、Amazon EMR リリース6.9.0 以降は HDFS をExchange マネージャーとして使用します。HDFS は Amazon EMR EC2 クラスターで使用でき、trino-exchange/スプーリングはデフォルトでディレクトリで行われます。デフォルト設定を使用するには、次の構成を設定します。

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

カスタムの場所を指定する場合は、trino-exchange-manager分類で次のプロパティを設定します。

  • exchange.use-local-hdfstrue に設定します。

  • HDFS のカスタムディレクトリの場所 (例:)exchange.base-directories に設定しますexchange.base-directories=/exchange。カスタムディレクトリがまだ HDFS にない場合は、Amazon EMR によって作成されます。

HDFS エクスチェンジマネージャーの構成

内部テストの結果によると、他のクラウドベースのファイルシステムと比較してクエリのパフォーマンスを向上させるには、ローカルの HDFS にスプールすることをお勧めします。HDFS を使用して Exchange Manager には、次の設定を設定できます。

構成 説明 デフォルト設定

exchange.hdfs.block-size

HDFS ストレージのブロックサイズ

4 MB

hdfs.config.resources

HDFS を設定するファイルパスのリスト

exchange.use-local-hdfsの場合はtruecore-site.xmlhdfs-site.xmlファイルへのパスを使用します。それ以外の場合はnull

その他の耐障害実行設定プロパティ、および Amazon S3 またはその他の Amazon S3 互換システムをスプール用に設定する方法については、Trino ドキュメントの耐障害実行ページを参照してください

考慮事項と制約事項

  • フォールトトレラント実行を有効にすると、write whenwriteretry-policy が設定されていないコネクタの操作が無効になります。Amazon EMR リリース 6.9.0 以降、デルタレイク、ハイブ、writeアイスバーグの各コネクタはでの操作をサポートしていますretry-policy

  • Exchange Manager を使用して負荷の高い I/O 操作を実行すると、Exchange Manager が中間データを外部ストレージにスプールしている間にクエリのパフォーマンスが低下する可能性があります。