Amazon EMR のステップをキャンセルするにはどうすればよいですか?

最終更新日: 2020 年 10 月 12 日

Amazon EMR のステップをキャンセルしようとしています。cancel-steps コマンドを実行すると、次のようなエラーが出ます。「Cannot cancel the step.It is already RUNNING.」

簡単な説明

このエラーは、Amazon EMR バージョン 5.27.x 以前に影響します。これらのリリースバージョンでは、cancel-steps コマンドは保留中のステップのみをキャンセルします。実行中のステップをキャンセするには、アプリケーション ID (YARN ステップの場合) またはプロセス ID (YARN 以外のステップの場合) のいずれかを強制終了します。

Amazon EMR バージョン 5.28.0 以降では、cancel-steps を使用して、保留中のステップと実行中のステップの両方をキャンセルできます。詳細については、AWS CLI およびコンソールを使用してステップを操作するを参照してください。

解決方法

Amazon EMR バージョン 5.27.x 以前でのステップの実行をキャンセルするには、次のいずれかの方法を使用します。

YARN アプリケーションのキャンセル

1.    SSH を使用してマスターノードに接続します。

2.    ステップのアプリケーション ID を検索するには、次のコマンドを実行して、実行中のすべてのアプリケーションを一覧表示します。

yarn application -list

3.    次のコマンドを実行して、アプリケーションを強制終了します。application_id を「application_1505786029486_002」などのアプリケーション ID に置き換えます。

注: このコマンドは、キュー内の保留中のステップをすべて強制終了します。

yarn application -kill application_id

YARN 以外のアプリケーションのキャンセル

1.    SSH を使用してマスターノードに接続します。

2.    次のコマンドを実行して、プロセス ID (pid) を取得します。次の例では、step_ids-Y9XXXXXXAPMD などのステップ識別子に置き換えます。

ps -ef |grep -i step_id

次の出力例では、プロセス ID は 2366 です。

hadoop    2366  4664  0 16:20 ?        00:00:01 /etc/alternatives/jre/bin/java -Xmx1000m -server -XX:OnOutOfMemoryError=kill -9 %p -Dhadoop.log.dir=/mnt/var/log/hado
op/steps/s-2RNURIK9Z2JUH -Dhadoop.log.file=syslog -Dhadoop.home.dir=/usr/lib/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,DRFA -Djava.library.pat
h=:/usr/lib/hadoop-lzo/lib/native:/usr/lib/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/mnt/var/lib/hadoop/st
eps/s-2RNURIK9Z2JUH/tmp -Dhadoop.security.logger=INFO,NullAppender -Dsun.net.inetaddr.ttl=30 org.apache.hadoop.util.RunJar /var/lib/aws/emr/step-runner/hadoop-
jars/command-runner.jar bash -c envsubst < /home/hadoop/truffle_suffle.json.template

3.    次のコマンドを実行して、プロセスを強制終了します。2366 をステップのプロセス識別子に置き換えます。

注: このコマンドは、キュー内の保留中のステップをすべて強制終了します。

kill -9 2366

ステップのステータスが Running から Failed に変わります。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?