내용으로 건너뛰기

자동 종료 정책을 사용할 때 Amazon EMR 클러스터가 예상보다 일찍 종료되거나 종료되지 않는 문제를 해결하려면 어떻게 해야 합니까?

2분 분량
0

자동 종료 정책을 사용할 때 Amazon EMR 클러스터가 예상보다 일찍 종료되거나 종료되지 않는 문제를 해결하고 싶습니다.

간략한 설명

Amazon EMR 클러스터를 생성할 때 자동 종료 정책을 활성화할 수 있습니다. 자동 종료 정책은 특정 유휴 시간이 지나면 클러스터를 종료합니다.

Amazon EMR 버전 5.34~5.36 및 6.4.0 이상에서는 다음과 같은 상황에서 클러스터가 유휴 상태가 됩니다.

  • YARN 애플리케이션이 활성화되지 않았습니다.
  • HDFS 사용률이 10% 미만입니다.
  • Amazon EMR 노트북 또는 EMR Studio 연결이 활성화되지 않았습니다.
  • 클러스터 애플리케이션 사용자 인터페이스가 사용 중이지 않습니다.

Amazon EMR 버전 5.30.05.33.1 및 6.1.06.3.0에서는 다음과 같은 상황에서 클러스터가 유휴 상태가 됩니다.

  • YARN 애플리케이션이 활성화되지 않았습니다.
  • HDFS 사용률이 10% 미만입니다.
  • Cluster Spark 작업이 활성화되지 않았습니다.

해결 방법

자동 종료 정책을 사용할 때 예상보다 일찍 종료되거나 종료되지 않는 Amazon EMR 클러스터를 해결하려면 다음 단계를 완료하십시오.

  1. Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 프로파일 역할 EMR_EC2_DefaultRole에 다음과 같은 권한이 있는지 확인합니다. 인스턴스 프로파일 역할에 다음 권한이 없는 경우 클러스터는 유휴 제한 시간이 지난 후에도 활성 상태를 유지합니다.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowAutoTerminationPolicyActions",
        "Effect": "Allow",
        "Action": [
          "elasticmapreduce:PutAutoTerminationPolicy",
          "elasticmapreduce:GetAutoTerminationPolicy",
          "elasticmapreduce:RemoveAutoTerminationPolicy"
        ],
        "Resource": "your-resources"
      }
    }
  2. 모든 Amazon EMR 버전에서 metrics-collector 프로세스가 실행 중인지 확인합니다. metrics-collector 프로세스는 지표를 수집하여 자동 종료를 결정합니다.

    metrics-collector 프로세스를 확인하려면 다음 명령을 실행하십시오.

    ps -ef|grep metrics-collector

    -또는-

    systemctl status metricscollector.service

    자세한 내용은 Amazon EMR에서 서비스를 다시 시작하려면 어떻게 해야 합니까?를 참조하십시오.

  3. Amazon EMR 클러스터의 CloudWatch 지표를 확인합니다. 클러스터에서 AutoTerminationClusterIdle CloudWatch 지표가 1로 표시되는지 확인합니다. 지표에 1이 표시되면 클러스터가 자동 종료 대상입니다. 지표에 0이 표시되면 클러스터가 활성 상태이며 자동 종료 대상이 아닙니다.

  4. 6.15.0 이전의 Amazon EMR 버전의 경우 EMR 클러스터의 기본 Java 버전을 오버로드했는지 확인하십시오. Amazon EMR에서 사용되는 기본 Java 버전을 재정의하면 자동 종료가 예상대로 작동하지 않습니다.

    이 문제를 해결하려면 실행 중인 클러스터의 기본 인스턴스에서 또는 새 클러스터에서 부트스트랩 작업으로 다음 스크립트를 실행하십시오.

    #Change EMR daemon startup scripts to use JDK8
    sudo sed -i 's#$JAVA_HOME#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre#g' /usr/bin/logpusher
    sudo sed -i 's#$JAVA_HOME#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre#g' /usr/bin/instance-controller
    sudo sed -i 's#/usr/bin/java#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/java#g' /usr/bin/metricscollector
    
    #Restart the daemons
    sudo systemctl restart instance-controller
    sudo systemctl restart logpusher
    sudo systemctl restart metricscollector.service
AWS 공식업데이트됨 일 년 전
댓글 없음