グレースフルな廃止による Presto Auto Scaling の使用 - Amazon EMR

グレースフルな廃止による Presto Auto Scaling の使用

Amazon EMR リリースバージョン 5.30.0 以降には、特定のスケーリングアクションの猶予期間を設定する機能が含まれています。猶予期間を使用することで、スケールインサイズ変更アクションまたは自動スケーリングポリシーリクエストによってノードが終了するまで Presto タスクの実行を続けることができます。スケーリングルールの詳細については、「Amazon EMR 管理ガイド」の「自動スケーリングルールについて」を参照してください。グレースフルな廃止を使用する Presto Auto Scaling では、廃止処理中のノードでの新しいタスクのスケジューリングを回避するとともに、シャットダウンタイムアウトに達する前に、既に実行中のタスクを完了できます。実行中のクエリは、ノードが廃止される前に実行を完了します。Autoscaling は、インスタンスフリートではサポートされていません。

自動スケーリングのシャットダウンリクエストが受け取られた後、Presto タスクが完了するまでの許容時間を制御できます。デフォルトでは、Amazon EMR のシャットダウンタイムアウトは 0 分です。この場合、スケールインリクエストで必要になると、Amazon EMR によってノードとそのノードで実行されている Presto タスクが直ちに終了します。実行中のクエリをクラスターのスケールダウン前に完了できるように、Amazon EMR で Presto タスクのタイムアウトを長く設定するには、presto-config 設定分類を使用して、graceful-shutdown-timeout パラメータを 0 より大きい値 (秒単位または分単位) に設定します。詳細については、「アプリケーションの設定」を参照してください。

例えば、graceful-shutdown-timeout 値を "30m" に増加すると、30 分間のタイムアウト期間が指定されます。シャットダウンタイムアウト期間が終了すると、廃止対象としてマークされたノードは、クエリタスクの完了を待機していても強制的に終了され、クエリは失敗します。クエリタスクが 5 分後に終了した場合、他の YARN アプリケーションが実行を完了していれば、廃止対象としてマークされたノードは終了します。

例 グレースフルな廃止による Presto 自動スケーリング設定の例

graceful-shutdown-timeout 値を、設定に適した分数に置き換えます。決められた最大値はありません。次の例では、タイムアウト値を 1800 秒 (30 分) に設定します。

[ { "classification": "presto-config", "properties": { "graceful-shutdown-timeout": "1800s" } } ]

機能制限

PrestoDB のグレースフルな廃止は、HTTP 接続が無効になっている EMR クラスターでは動作しません (http-server.http.enabledfalse に設定されている場合など)。Trino では、http-server.http.enabled の設定に関係なく、グレースフルな廃止はサポートされていません。