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)]로 바뀝니다.


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?