YARN でのアプリケーションが完了したのに Amazon EMR ステップが実行されるのはなぜですか?

所要時間1分
0

それぞれの Apache Spark または YARN アプリケーションが完了したにもかかわらず、Amazon EMR ステップが、実行中の状態のままです。

解決方法

この問題を解決するには、次のいずれかの方法を使用してください。

  • それぞれの YARN アプリケーションのステータスを検証し、ステップを終了します。
  • AWS コマンドラインインターフェイス (AWS CLI) を使用してステップ ID を手動でキャンセルします。

YARN アプリケーションのステータスを検証し、ステップを終了する

1.    ステップログの stderr ファイルから YARN applicationId を特定します。詳細については、「Amazon EMR で失敗したステップのトラブルシューティングを行うにはどうすればよいですか?」を参照してください。

2.    SSH を使用してプライマリノードに接続します

3.    次の YARN コマンドを使用して、YARN アプリケーションの状態を確認します。次のコマンド例では、application_id を実際のアプリケーション ID に置き換えます。アプリケーション ID の例は application_1234567891011_001 です。

yarn application -status application_id

または、次の YARN コマンドを使用してすべてのアプリケーションを一覧表示します。

yarn application -list -appStates ALL

4.    前述のコマンドの出力を確認して、アプリケーションの状態を確認してください。

Application-States: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]

次は、正常に完了したアプリケーションの出力例です。

Progress : 100%
State : FINISHED
Final-State : SUCCEEDED

前述のコマンドの出力状態が、FINISHEDFAILED、または KILLED の場合、YARN アプリケーションは完了します。

アプリケーションのステータスが、NEWNEW_SAVINGSUBMITTEDACCEPTED、または RUNNING の場合、YARN アプリケーションはまだ実行中です。アプリケーションが完了するのを待つか、アプリケーションを終了してステップをキャンセルしてください。

7.    次のコマンドを実行して、アプリケーションを終了します。次のコマンド例では、application_id を実際のアプリケーション ID に置き換えます。アプリケーション ID の例は application_1234567891011_001 です。

yarn application -kill application_id

8.    アプリケーションを終了したら、Amazon EMR ステップのステータスをもう一度確認してください。

AWS CLI を使用して Amazon EMR ステップを手動でキャンセルする

注: 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

詳細については、「ステップのキャンセル」をご参照ください。


AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ