

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

# 設定 Amazon EMR 叢集在步驟執行後繼續或終止
<a name="emr-plan-longrunning-transient"></a>

本主題說明使用長時間執行的叢集與建立一個在最後一步執行後會關閉的暫時性叢集之間的差異。內容涵蓋如何設定叢集的步驟執行。

## 建立一個長時間執行的叢集
<a name="emr-long-running-clusters"></a>

根據預設，您使用 主控台或 建立的叢集 AWS CLI 會長時間執行。長時間執行的叢集會繼續執行、接受工作並產生費用，直到您採取動作將其關閉為止。

長時間執行的叢集在下列情況下有效：
+ 在您需要以互動方式或自動查詢資料時。
+ 當您需要持續與叢集上託管的大數據應用程式互動時。
+ 當您定期處理大型資料集，或您經常處理資料集，導致無法每次都有效啟動新的叢集並載入資料時。

您也可以在長時間執行的叢集上設定終止保護，以避免意外或錯誤關閉 EC2 執行個體。如需詳細資訊，請參閱[使用終止保護來保護 Amazon EMR 叢集免於意外關閉](UsingEMR_TerminationProtection.md)。

**注意**  
Amazon EMR 會自動為具有多個主節點的所有叢集啟用終止保護，並覆寫您在建立叢集時提供的任何步驟執行設定。您可以在叢集啟動之後停用終止保護。請參閱 [對執行中的叢集設定終止保護](UsingEMR_TerminationProtection.md#emr-termination-protection-running-cluster)。若要關閉具有多個主節點的叢集，您必須先修改叢集屬性以停用終止保護。如需說明，請參閱[終止具有多個主節點的 Amazon EMR 叢集](emr-plan-ha-launch.md#emr-plan-ha-launch-terminate)。

## 將叢集設定為在步驟執行後終止
<a name="emr-step-execution"></a>

當您設定在步驟執行後終止時，叢集會啟動、執行引導操作，然後執行您指定的步驟。一旦最後一步完成，Amazon EMR 就會終止叢集的 Amazon EC2 執行個體。依預設，您使用 Amazon EMR API 啟動的叢集已啟用步驟執行。

步驟執行後終止對執行定期處理任務 (例如每日資料處理執行) 的叢集有效。步驟執行也有助於確保您只需為處理資料所需的時間付費。如需步驟的詳細資訊，請參閱 [將工作提交至 Amazon EMR 叢集](emr-work-with-steps.md)。

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

**使用主控台在步驟執行後開啟終止**

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

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下，選擇**叢集**，然後選擇**建立叢集**。

1. 在**步驟**下，選擇**新增步驟**。在**新增步驟**對話方塊中，輸入適當的欄位值。選項視步驟類型而異。若要新增步驟並結束對話方塊，請選擇**新增步驟**。

1. 在**叢集終止**下，選取**最後一步完成後終止叢集**核取方塊。

1. 選擇適用於您的叢集的任何其他選項。

1. 若要啟動您的叢集，請選擇**建立叢集**。

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

**使用 在步驟執行後開啟終止 AWS CLI**
+ 當您使用 `--auto-terminate` 命令指定 `create-cluster` 參數來建立暫時性叢集。

  下列範例示範如何使用 `--auto-terminate` 參數。您可以輸入下列命令，然後使用 EC2 金鑰對的名稱來取代 *myKey*。
**注意**  
包含 Linux 行接續字元 (\$1) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey \
  --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,\
  Args=[-f,s3://amzn-s3-demo-bucket/scripts/pigscript.pig,-p,\
  INPUT=s3://amzn-s3-demo-bucket/inputdata/,-p,OUTPUT=s3://amzn-s3-demo-bucket/outputdata/,\
  $INPUT=s3://amzn-s3-demo-bucket/inputdata/,$OUTPUT=s3://amzn-s3-demo-bucket/outputdata/]
  --instance-type m5.xlarge --instance-count 3 --auto-terminate
  ```

------
#### [ API ]

**在叢集啟動中使用 Amazon EMR API 在步驟執行後關閉終止**

1. 使用 [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html) 動作來建立叢集時，將 [KeepJobFlowAliveWhenNoSteps](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_JobFlowInstancesConfig.html#EMR-Type-JobFlowInstancesConfig-KeepJobFlowAliveWhenNoSteps) 屬性設定為 `false`。

1. 若要使用 Amazon EMR API 叢集啟動後在步驟執行後變更終止組態：

   使用 SetKeepJobFlowAliveWhenNoSteps 動作。

------