

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

# 當您將工作提交至 Amazon EMR 時，同時執行多個步驟的考量事項
<a name="emr-concurrent-steps"></a>

當您將工作提交至 Amazon EMR 時，並行執行多個步驟需要有關資源規劃的初步決策，以及有關叢集行為的期望。此處會詳細說明這些內容。
+ 並行執行的步驟可能會以任何順序完成，但佇列中的待定步驟會依照其提交順序轉換為執行中狀態。
+ 為您的叢集選取步驟並行層級時，必須考量主節點執行個體類型是否符合使用者工作負載的記憶體要求。主要步驟執行程式會在各步驟的主節點上執行。並行執行多個步驟所需的主節點記憶體與 CPU 使用率，要比一次執行一個步驟更多。
+ 若要達成並行步驟複雜的排程和資源管理，您可以使用如 `FairScheduler` 或 `CapacityScheduler` 等 YARN 功能。例如，您可以搭配 `queueMaxAppsDefault` 集合使用 `FairScheduler`，以防止某個數量的任務一次執行。
+ 步驟並行層級視資源管理員組態而定。例如，如果 YARN 只使用 `5` 的平行處理設定，即使 `StepConcurrencyLevel` 設為 `10`，您只能讓五個 YARN 應用程式並行執行。如需有關設定資源管理器的詳細資訊，請參閱《Amazon EMR 版本指南》**中的[設定應用程式](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)。
+ 當叢集的步驟並行層級大於 1 時，無法新增具有 `ActionOnFailure` 的步驟 (CONTINUE 除外)。
+ 如果叢集的步驟並發層級大於 1，步驟 `ActionOnFailure` 功能將不會啟動。
+ 如果叢集具有步驟並行層級 `1`，但有多個執行中的步驟，則 `TERMINATE_CLUSTER ActionOnFailure` 可能會啟動，但 `CANCEL_AND_WAIT ActionOnFailure` 不會啟動。當叢集步驟並行層級大於 1，但在執行多個步驟時會降低，就會出現此邊緣情況。
+ 您可以使用 EMR 自動調整規模功能，根據 YARN 資源擴展與縮減規模，以防止資源爭用。如需詳細資訊，請參閱《Amazon EMR 管理指南》**中的[針對執行個體群組搭配使用自動擴展與自訂政策](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)。
+ 當您減少步驟並行層級時，EMR 允許任何執行中的步驟在減少步驟數之前完成。如果資源因叢集執行過多並行步驟而耗盡，我們建議手動取消任何執行中的步驟，以釋放資源。