スキップしてコンテンツを表示

YARN でアプリケーションが完了したにもかかわらず、Amazon EMR ステップが実行中である理由を知りたいです。

所要時間1分
0

Amazon EMR ステップに対応する Apache Spark または YARN アプリケーションが完了しても、ステップの状態が RUNNING のままになります。

解決策

次のいずれかの手順で、この問題を解決します。

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 コマンドラインインターフェイス (AWS CLI) を使用して Amazon EMR ステップを手動でキャンセルする

**注:**AWS コマンドラインインターフェイス (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公式更新しました 1年前
コメントはありません