내용으로 건너뛰기

Amazon EMR 클러스터가 종료되는 이유는 무엇입니까?

4분 분량
0

Amazon EMR 클러스터가 예기치 않게 종료되었습니다.

해결 방법

Amazon EMR은 클러스터 시작 시 지정된 Amazon Simple Storage Service(Amazon S3) 버킷에 클러스터 로그를 저장합니다. 예를 들면 **s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/**입니다.

Amazon EMR 클러스터가 종료된 이유를 확인하려면 Amazon S3에 저장된 Amazon EMR 프로비저닝 로그를 검토하십시오.

"SHUTDOWN_STEP_FAILED (USER_ERROR)" 오류

Amazon EMR 클러스터에서 단계 작업을 제출할 때 ActionOnFailure 파라미터에서 단계 실패 동작을 지정할 수 있습니다. ActionOnFailure 파라미터로 TERMINATE_CLUSTER 또는 TERMINATE_JOB_FLOW를 선택하면 Amazon EMR 클러스터가 종료되고 AWS CloudTrail에서 다음과 같은 오류 메시지가 표시될 수 있습니다.

"{ "severity": "ERROR", "actionOnFailure": "TERMINATE_JOB_FLOW", "stepId": "s-2I0G########", "name": "Example Step", "clusterId": "j-2YJ#######", "state": "FAILED", "message": "Step s-2I0G####### (Example Step) in Amazon EMR cluster j-2YJ####### failed at 202#-1#-0# 0#:## UTC." }"

이 오류를 방지하려면 단계 작업을 제출할 때 ActionOnFailure 파라미터에 CONTINUE 또는 CANCEL\ _AND\ _WAIT 옵션을 사용하십시오.

자세한 내용은 StepConfig를 참조하십시오.

"NO_SLAVES_LEFT (SYSTEM_ERROR)" 오류

다음 조건에 해당하는 경우 "No_SLAVES_LEFT" 오류가 표시됩니다.

  • Amazon EMR 클러스터에서 종료 방지 기능을 비활성화했습니다.
  • 모든 코어 노드가 yarn-site 구성 분류의 최대 사용률 임계값에 명시된 디스크 스토리지 용량을 초과합니다. 기본 최대 사용률 임계값은 90%입니다.
  • 코어 인스턴스는 스팟 인스턴스이며 스팟 인스턴스는 TERMINATED_BY_SPOT_DUE_TO_NO_CAPACITY입니다.
    스팟 인스턴스 종료에 대한 자세한 내용은 Amazon EC2가 스팟 인스턴스를 중단한 이유는 무엇입니까?를 참조하십시오.

이 오류를 해결하려면 다음 작업을 수행하십시오.

"502 Bad Gateway" 오류

Amazon EMR 내부 시스템이 일정 기간 동안 프라이머리 노드에 도달할 수 없으면 "502 Bad Gateway" 오류가 표시됩니다. 종료 방지 기능을 비활성화하면 Amazon EMR이 클러스터를 종료합니다.

인스턴스 컨트롤러 서비스가 다운되면 최신 인스턴스 컨트롤러 로그와 인스턴스 상태 로그를 확인하십시오. 인스턴스 컨트롤러 표준 출력에 메모리 부족으로 인해 서비스가 종료되었다는 내용이 표시된다면 프라이머리 노드에 충분한 메모리가 없는 것입니다.

다음은 인스턴스 상태 로그의 오류 메시지 예시입니다.

# dump instance controller stdouttail -n 100 /emr/instance-controller/log/instance-controller.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fb46c7c8000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid16110.log
# whats memory usage look like
free -m
              total        used        free      shared  buff/cache   available
Mem:          15661       15346         147           0         167          69
Swap:             0           0           0

앞의 오류를 방지하려면 더 큰 인스턴스 유형으로 Amazon EMR 클러스터를 시작하여 클러스터 요구 사항에 맞는 더 많은 메모리를 활용하십시오. 또한 장기 실행 클러스터에서 메모리 사용이 중단되지 않도록 디스크 공간을 정리하십시오. 자세한 내용은 Amazon EMR에서 "502 Bad Gateway" 또는 "504 Gateway Time-out" 오류로 인한 프라이머리 노드 장애를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

"KMS_ISSUE (USER_ERROR)" 오류

Amazon EMR 보안 구성을 사용하여 Amazon EBS 루트 디바이스 및 스토리지 볼륨을 암호화하는 경우 역할에 적절한 권한이 있어야 합니다. 필요한 권한이 없는 경우 AWS CloudTrail에 다음과 같은 오류 메시지가 표시됩니다.

"The EMR Service Role must have the kms:GenerateDataKey* and kms:ReEncrypt* permission for the KMS key configuration when you enabled EBS encryption by default. You can retrieve that KMS key's ID by using the ec2:GetEbsDefaultKmsKeyId API."

위의 오류를 방지하려면 Amazon EBS 루트 디바이스 및 스토리지 볼륨을 암호화하는 데 사용되는 보안 구성에 필요한 권한이 있는지 확인하십시오. 또한 Amazon EMR 서비스 역할(EMR_DefaultRole_V2)에 지정된 AWS Key Management Service(AWS KMS) 키를 사용할 권한이 있는지 확인합니다.

"Terminated with errors, The master node was terminated by user" 오류

Amazon EMR 클러스터 프라이머리 노드가 어떤 이유로든 중지되면 "The master node was terminated by user"라는 오류가 표시되면서 클러스터가 종료됩니다.

AWS CloudTrail에서 다음과 같은 오류 메시지가 표시됩니다.

eventTime": "2023-01-18T08:07:02Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StopInstances",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "52.##.##.##",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "instancesSet": {
            "items": [
                {
                    "instanceId": "i-##f6c5###########"
                }
            ]
        },
        "force": false
},

Amazon EMR 프라이머리 또는 모든 코어 노드를 중지하는 경우 클러스터가 종료되므로 클러스터 노드를 중지하거나 재부팅하지 마십시오.

참고: Amazon EMR 클러스터는 이 문서에 포함된 이유 이외의 다른 이유로 종료될 수 있습니다. 자세한 내용은 Amazon EMR 클러스터 작업 중 발생하는 리소스 오류를 참조하십시오.

AWS 공식업데이트됨 2달 전
댓글 없음