

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Presto 自動擴展搭配逐漸除役
<a name="presto-graceful-autoscale"></a>

Amazon EMR 發行版本 5.30.0 及更高版本包含一項功能，您可以用它設定特定擴展動作的寬限期間。寬限期間允許 Presto 任務在因縮減規模動作或自動擴展政策請求而導致節點終止之前繼續執行。如需有關擴展規則的詳細資訊，請參閱《Amazon EMR 管理指南》**中的[了解自動擴展規則](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html#emr-scaling-rules)。搭配使用 Presto 自動擴展與逐漸除役，可防止在除役的節點上排程新任務，同時可讓執行中任務在達到關機逾時之前完成。正在執行的查詢將在節點解除委任之前完成執行。執行個體機群不支援自動擴展。

您可以控制在收到自動擴展關機請求以後，允許 Presto 任務完成的時間。預設情況下，Amazon EMR 的關機逾時為 `0` 分鐘，這意味著按縮減請求的要求，Amazon EMR 會立即終止節點和在其上執行的任何 Presto 任務。若要為 Amazon EMR 上的 Presto 任務設定較長超時，允許「執行中」查詢完成後才向下擴展叢集，請使用 `presto-config` 組態分類，將 `graceful-shutdown-timeout` 參數設為單位為秒或分鐘、且大於零的值。如需詳細資訊，請參閱[設定應用程式](emr-configure-apps.md)。

例如，增加 `graceful-shutdown-timeout` 值至 `"30m"` 可指定逾時期間為 30 分鐘。關機逾時期間結束後，如果標記為要除役的節點仍在等待查詢工作完成，則此時查詢若是失敗，系統會強制終止此節點。如果查詢任務在五分鐘內完成，此時只要其他 YARN 應用程式已完成執行，系統就會終止標記為除役的節點。

**Example 範例：搭配逐漸除役使用的 Presto 自動擴展組態**  
將 `graceful-shutdown-timeout` 值取代為適合您安裝程式的分鐘數。沒有最大數值。下面範例將逾時值設定為 `1800` 秒 (30 分鐘)。  

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

**限制**

PrestoDB 逐漸除役不適用於停用 HTTP 連線的 EMR 叢集，例如當 `http-server.http.enabled` 設為 `false` 時。不管 `http-server.http.enabled` 設定為何，Trino 始終不支援逐漸除役。