NO_SLAVE_LEFT로 Amazon EMR 클러스터 종료 및 코어 노드 FAILED_BY_MASTER - Amazon EMR

NO_SLAVE_LEFT로 Amazon EMR 클러스터 종료 및 코어 노드 FAILED_BY_MASTER

일반적으로 이는 종료 방지 기능이 비활성화되고 모든 코어 노드가 yarn-site.xml 파일에 해당하는 yarn-site 구성 분류의 최대 사용률 임계값에 지정된 디스크 저장 용량을 초과하기 때문에 발생합니다. 기본값은 90%입니다. 코어 노드의 디스크 사용률이 사용률 임계값을 초과하면 YARN NodeManager 상태 서비스가 노드를 UNHEALTHY로 보고합니다. 이 상태에 있는 동안 은Amazon EMR 노드를 거부 목록에 등록하고 YARN 컨테이너를 할당하지 않습니다. 노드가 45분 동안 비정상 상태로 유지되면 Amazon EMR은 종료를 위해 연관된 Amazon EC2 인스턴스를 FAILED_BY_MASTER로 표시합니다. 코어 노드와 관련된 모든 Amazon EC2 인스턴스가 종료로 표시되면 작업을 실행할 리소스가 없기 때문에 클러스터는 NO_SLAVE_LEFT 상태로 종료됩니다.

하나의 코어 노드에서 디스크 사용률을 초과하면 연쇄 반응이 발생할 수 있습니다. HDFS로 인해 단일 노드가 디스크 사용률 임계값을 초과하는 경우 다른 노드도 임계값 근처에 있을 수 있습니다. 첫 번째 노드는 디스크 사용률 임계값을 초과하므로 Amazon EMR은 이를 거부 목록에 등록합니다. 이렇게 하면 거부 목록 노드에서 손실된 HDFS 데이터를 복제하기 시작하기 때문에 나머지 노드의 디스크 사용량이 증가합니다. 각 노드는 이후 같은 방식으로 UNHEALTHY로 이동하고 결국 클러스터가 종료됩니다.

모범 사례 및 권장 사항

적절한 스토리지가 있는 클러스터 하드웨어 구성

클러스터를 생성할 때 코어 노드가 충분하고 각각에 적절한 인스턴스 스토어 및 HDFS용 EBS 스토리지 볼륨이 있는지 확인하십시오. 자세한 내용은 클러스터의 필요한 HDFS 용량 계산 단원을 참조하십시오. 기존 인스턴스 그룹에 수동으로 또는 자동 크기 조정을 통해 코어 인스턴스를 추가할 수도 있습니다. 새 인스턴스는 인스턴스 그룹의 다른 인스턴스와 동일한 스토리지 구성을 갖습니다. 자세한 내용은 Amazon EMR 클러스터 조정을 사용하여 워크로드 변경에 맞게 조정 단원을 참조하십시오.

종료 방지 기능 활성화

종료 방지 기능을 활성화합니다. 이렇게 하면 코어 노드가 거부 목록에 등록된 경우 SSH를 사용하여 관련된 Amazon EC2 인스턴스에 연결하여 데이터 문제를 해결하고 복구할 수 있습니다. 종료 방지 기능을 활성화하면 Amazon EMR이 Amazon EC2 인스턴스를 새 인스턴스로 대체하지 않는다는 점에 유의하세요. 자세한 내용은 종료 방지를 사용하여 Amazon EMR 클러스터가 실수로 종료되지 않도록 보호 단원을 참조하십시오.

MRUnhealthyNodes CloudWatch 지표에 대한 경보 생성

이 측정치는 UNHEALTHY 상태를 보고하는 노드의 수를 보고합니다. 이는 YARN 측정치 mapred.resourcemanager.NoOfUnhealthyNodes와 동등합니다. 45분 제한 시간에 도달하기 전에 비정상 노드를 경고하기 위해 이 경고에 대한 알림을 설정할 수 있습니다. 자세한 내용은 CloudWatch에서 Amazon EMR 지표 모니터링 단원을 참조하십시오.

yarn-site를 사용하여 설정 수정

아래의 설정은 애플리케이션 요구 사항에 따라 조정할 수 있습니다. 예를 들어, yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 값을 증가시켜 노드가 UNHEALTHY를 보고하는 디스크 사용률 임계값을 늘릴 수 있습니다.

yarn-site 구성 분류를 사용하여 클러스터를 생성할 때 이러한 값을 설정할 수 있습니다. 자세한 내용은 Amazon EMR 릴리스 안내서에서 애플리케이션 구성을 참조하세요. SSH를 사용하여 코어 노드와 연관된 Amazon EC2 인스턴스에 연결한 다음, 텍스트 편집기를 사용하여 /etc/hadoop/conf.empty/yarn-site.xml에 값을 추가할 수도 있습니다. 변경한 후에는 아래와 같이 hadoop-yarn-nodemanager를 다시 시작해야 합니다.

중요

NodeManager 서비스를 다시 시작하면 클러스터를 생성할 때 yarn-site 구성 분류를 사용하여 yarn.nodemanager.recovery.enabledtrue로 설정하지 않으면 활성 YARN 컨테이너가 종료됩니다. yarn.nodemanager.recovery.dir 속성을 사용하여 컨테이너 상태를 저장할 디렉터리를 지정해야 합니다.

sudo /sbin/stop hadoop-yarn-nodemanager sudo /sbin/start hadoop-yarn-nodemanager

현재 yarn-site 속성 및 기본값에 대한 자세한 내용은 Apache Hadoop 설명서의 YARN 기본 설정을 참조하십시오.

속성 기본값 설명

yarn.nodemanager.disk-health-checker.interval-ms

120000

디스크 상태 확인 프로그램이 실행되는 빈도(초)입니다.

yarn.nodemanager.disk-health-checker.min-healthy-disks

0.25

NodeManager가 새 컨테이너를 시작하는 데 필요한 정상 디스크 수의 최소 비율입니다. 이는 yarn.nodemanager.local-dirs(기본값은 Amazon EMR의 /mnt/yarn)와 yarn.nodemanager.log-dirs(기본값은 /var/log/hadoop-yarn/containers이며 Amazon EMR의 mnt/var/log/hadoop-yarn/containers에 대한 기호 링크로 생성됨)에 모두 해당합니다.

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90.0

디스크가 불량으로 표시된 이후에 허용되는 디스크 공간 사용률의 최대 백분율입니다. 값의 범위는 0.0 ~ 100.0입니다. 값이 100보다 크거나 같으면 NodeManager가 전체 디스크를 확인합니다. 이는 yarn-nodemanager.local-dirsyarn.nodemanager.log-dirs에 적용됩니다.

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0

디스크에서 사용할 수 있어야 하는 최소 공간입니다. 이는 yarn-nodemanager.local-dirsyarn.nodemanager.log-dirs에 적용됩니다.