為什麼即使我在 YARN 上的申請完成,Amazon EMR 步驟仍然執行?

1 分的閱讀內容
0

即使已完成相對應的 Apache Spark 或 YARN 應用程式,Amazon EMR 步驟仍處於執行狀態。

解決方法

請使用下列其中一種方法來解決此問題。

驗證 YARN 應用程式的狀態,然後結束步驟

請完成下列步驟:

  1. 從步驟記錄 stderr 檔案中識別 YARN applicationId

  2. 使用 SSH 連線至主節點

  3. 使用下列 YARN 命令來尋找 YARN 應用程式的狀態。在下列範例中,將 application_id 取代為您的應用程式 ID。應用程式 ID 範例為 application_1234567891011_001

    yarn application -status application_id

    -或-

    使用下列 YARN 命令列出所有應用程式:

    yarn application -list -appStates ALL
  4. 檢查先前命令輸出是否有應用程式的狀態。
    如果上述命令的輸出狀態為 FINISHEDFAILEDKILLED,則 YARN 應用程式已完成。
    如果應用程式狀態為 NEWNEW_SAVINGSUBMITTEDACCEPTEDRUNNING,則 YARN 應用程式仍在執行中。等待應用程式完成,或結束應用程式以取消步驟。
    以下是成功完成的應用程式輸出範例:

    Progress : 100%
    State : FINISHED
    Final-State : SUCCEEDED
  5. 執行以下命令即可結束應用程式。將 application_id 取代為您的應用程式 ID。應用程式 ID 範例為 application_1234567891011_001

    yarn application -kill application_id
  6. 結束應用程式後,再次檢查 Amazon EMR 步驟的狀態。

使用 AWS Command Line Interface (AWS CLI) 手動取消 Amazon EMR 步驟

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

請完成下列步驟:

  1. 使用 describe-step 命令來檢視步驟的狀態。在下列命令中,將 cluster-idstep-id 取代為使用案例的正確值。

    aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx
  2. 使用 cancel-steps 命令取消步驟。在下列命令中,將 cluster-idstep-id 取代為使用案例的正確值。

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

如需詳細資訊,請參閱將工作提交至 Amazon EMR 叢集時取消步驟

AWS 官方
AWS 官方已更新 8 個月前