

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

# Presto でのスポットインスタンス損失の処理
<a name="presto-spot-loss"></a>

Amazon EMR のスポットインスタンスを使用すると、予備の Amazon EC2 キャパシティでビッグデータワークロードを低コストで実行できます。Amazon EC2 は、コスト削減と引き換えに、2 分間の通知により、スポットインスタンスを中断できます。ノードを終了すると、Presto がエラーを返すまでに最大 10 分かかることがあります。これにより、エラー報告が不必要に遅れたり、再試行されたりする可能性があります。クイック終了は、終了したノードを Presto が処理する方法を制御できる機能です。

Presto コーディネーターの仕事は、定期的にステータスをポーリングしてすべてのワーカーノードを追跡することです。クイック終了がなければ、コーディネーターは各ノードのステータスを YARN NodeManager に問い合わせません。これにより、クエリが失敗するまでの再試行ループが長くなる可能性があります。クイック終了では、Presto コーディネーターは、ポーリングがホストに到達できないとすぐに NodeManager でノードのステータスを調べます。NodeManager がノードが非アクティブであることを示した場合、Presto はそれ以上の再試行を中止し、クエリに失敗して、`NODE_DECOMMISSIONED` エラーを返します。

以下の設定パラメータセットにより、ノード終了時の Presto の動作を制御およびカスタマイズできます。


**ノード障害処理用の Presto 設定**  

| 設定 | 説明 | デフォルト | 
| --- | --- | --- | 
| query.remote-task.max-backoff-duration | コーディネーターがワーカーノードからリモートタスクのステータスを取得しようとし続ける時間。 | 10 分 | 
| query.remote-task.quick-terminate-node-failure |  コーディネーターがノードに到達できない場合や、そのノードで実行されているワーカーに接続できない場合に、クイックノード障害を有効にします。`query.remote-task.terminate-on-connect-exception` の値によって、コーディネーターがノードに到達する必要があるのか、ワーカーに接続する必要があるのかが決まります。 ノードはクエリに失敗し、Amazon EMR は利用可能なワーカーのリストからノードを削除します。この場合、ノードを使用して新しいクエリをスケジュールすることはできません。 この値を `false` に設定すると、Presto コーディネーターが再びノードにアクセスしようとする (`query.remote-task.max-backoff-duration` の場合)、以前の動作に戻ります。その後、ノードが使用不可とマークされ、ノード上で実行中のクエリが失敗します。  | true | 
| query.remote-task.terminate-on-connect-exception | ホストには接続可能だが、コーディネーターがホストのワーカープロセスに接続できない場合に Amazon EMR がノードを処理する必要があるかどうかを指定します。この値を true に設定すると、ホストにアクセスできない場合にクイッククエリ障害が有効になります。 | false | 