Amazon EMR 클러스터를 시작하지 못하고 "부트스트랩 작업으로 0이 아닌 반환 코드가 반환됨" 오류가 반환되는 이유는 무엇입니까?

최종 업데이트 날짜: 2022년 9월 12일

Amazon EMR 클러스터에 대한 사용자 지정 부트스트랩 작업을 생성했습니다. 클러스터가 시작되지 않고 부트스트랩 작업에서 "부트스트랩 작업 1이 0이 아닌 반환 코드를 반환함(bootstrap action 1 returned a non-zero return code)"과 유사한 오류가 반환됩니다.

간략한 설명

부트스트랩 작업은 Amazon EMR이 클러스터에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 프로비저닝한 후에 실행됩니다. 부트스트랩 작업이 실패하면 Amazon EMR이 인스턴스를 종료합니다. 자세한 정보는 클러스터 수명 주기 이해를 참조하세요.

부트스트랩 스크립트 오류 때문에 부트스트랩 작업이 실패하면 클러스터가 시작될 수 없습니다. 자세한 내용은 부트스트랩 작업 기본 사항을 참조하세요.

해결 방법

부트스트랩 작업이 실패한 이유를 확인하려면 부트스트랩 작업의 stderr 로그를 검토하세요. 이러한 로그는 Amazon EMR 클러스터를 생성할 때 이전에 구성한 Amazon Simple Storage Service(S3) 경로 또는 LogUri에 있습니다.

예: s3://example-log-location/example-cluster-id/node/example-instance-id/bootstrap-actions/

stderr 로그를 검토한 후에도 스크립트가 실패한 이유를 확인할 수 없을 경우 스크립트를 수정하여 디버그 정보를 추가로 제공하세요. 예를 들어 bash 스크립트에서 -ex 파라미터를 설정하세요. 이렇게 하면 부트스트랩 작업 로그 파일의 bash 스크립트 흐름을 확인할 수 있습니다.

#!/bin/bash
set -x -e

참고: 실패한 부트스트랩 작업이 사용자가 생성한 부트스트랩 작업이 아닌 경우(예: 6개의 부트스트랩 작업을 생성하고 오류 메시지 "0이 아닌 종료 코드로 인해 부트스트랩 작업 7이 실패함(bootstrap action 7 failed with non-zero exit code)"이 표시됨), 이 오류 메시지는 Amazon EMR이 애플리케이션을 설치하거나 서비스를 시작하지 못했다는 것을 나타냅니다.

이 문제를 해결하려면 Amazon EMR 프로비저닝 로그를 확인합니다. Amazon EMR은 Puppet을 사용하여 클러스터에 애플리케이션을 설치하고 구성합니다. 로그는 클러스터를 프로비저닝하는 동안 발생한 오류에 대한 정보를 제공할 수 있습니다.

로그를 S3로 푸시하도록 구성한 경우 클러스터 또는 S3에서 이러한 로그에 액세스할 수 있습니다. 로그는 디스크의 /var/log/provision-node/apps-phase/0/example-UUID}/puppet.logs3://example-log-location/example-cluster-id/node/example-instance-id/provision-node/apps-phase/0/{UUID}/puppet.log.gz에 저장됩니다.


이 문서가 도움이 되었나요?


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