

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

# 當您將工作提交至 Amazon EMR 叢集時取消步驟
<a name="emr-cancel-steps"></a>

當您將工作提交至叢集時，您可以從 AWS 管理主控台 AWS CLI、 或 Amazon EMR 取消待處理和執行中的步驟。API。

------
#### [ Console ]

**使用主控台取消步驟**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 開啟 Amazon EMR 主控台。

1. 在左側導覽窗格中的 **EMR on EC2** 下，選擇**叢集**，然後選取您要更新的叢集。

1. 在叢集詳細資訊頁面的**步驟**索引標籤中，選取您要取消之步驟旁邊的核取方塊。選擇**動作**下拉式功能表，然後選取**取消步驟**。

1. 在**取消步驟**對話方塊中，選擇取消步驟並等待其結束，或取消步驟並強制其結束。然後選擇 **Confirm** (確認)。

1. **步驟**資料表中的步驟狀態會變為 `CANCELLED`。

------
#### [ CLI ]

**使用 取消 與 AWS CLI**
+ 使用 `aws emr cancel-steps` 命令，指定要取消的叢集和步驟。以下範例示範取消兩個步驟的 AWS CLI 命令。

  ```
  aws emr cancel-steps --cluster-id j-2QUAXXXXXXXXX \
  --step-ids s-3M8DXXXXXXXXX s-3M8DXXXXXXXXX \
  --step-cancellation-option SEND_INTERRUPT
  ```

透過 Amazon EMR 5.28.0 版，可在取消步驟時選擇 `StepCancellationOption` 參數的下列兩個取消選項之一。
+ `SEND_INTERRUPT` – 此為預設選項。當收到步驟取消請求時，EMR 會向步驟傳送 `SIGTERM` 訊號。將 `SIGTERM` 訊號處理常式新增到步驟邏輯，以獲取此訊號並終止子代步驟程序或等待它們完成。
+ `TERMINATE_PROCESS` - 選取此選項時，EMR 會向步驟及其所有子代程序傳送 `SIGKILL` 訊號，它會立即進行終止。

------

**取消步驟的考量**
+ 取消執行中或待定的步驟會從作用中的步驟計數中移除該步驟。
+ 如果 `stepConcurrencyLevel` 沒有變更，則取消執行中的步驟不允許待定步驟開始執行。
+ 取消執行中的步驟並不會觸發步驟 `ActionOnFailure`。
+ 對於 EMR 5.32.0 及更高版本，`SEND_INTERRUPT StepCancellationOption` 會將 `SIGTERM` 訊號傳送到步驟子程序。您應該注意此訊號，並正常進行清理和關閉。`TERMINATE_PROCESS StepCancellationOption` 會將 `SIGKILL` 訊號傳送至步驟子程序及其所有子代程序；不過，非同步程序不受影響。