

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# NO\_SLAVE\_LEFT로 Amazon EMR 클러스터 종료 및 코어 노드 FAILED\_BY\_MASTER
<a name="emr-cluster-NO_SLAVE_LEFT-FAILED_BY_MASTER"></a>

일반적으로 이는 종료 방지 기능이 비활성화되고 모든 코어 노드가 `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`로 이동하고 결국 클러스터가 종료됩니다.

## 모범 사례 및 권장 사항
<a name="w2aac36c21c13b7b7"></a>

### 적절한 스토리지가 있는 클러스터 하드웨어 구성
<a name="w2aac36c21c13b7b7b3"></a>

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

### 종료 방지 기능 활성화
<a name="w2aac36c21c13b7b7b5"></a>

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

### MRUnhealthyNodes CloudWatch 지표에 대한 경보 생성
<a name="w2aac36c21c13b7b7b7"></a>

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

### yarn-site를 사용하여 설정 수정
<a name="w2aac36c21c13b7b7b9"></a>

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

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

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

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

현재 `yarn-site` 속성 및 기본값에 대한 자세한 내용은 Apache Hadoop 설명서의 [YARN 기본 설정](http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml)을 참조하세요.


| 속성 | 기본값  | 설명 | 
| --- | --- | --- | 
| 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-dirs` 및 `yarn.nodemanager.log-dirs`에 적용됩니다. | 
| `yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb` | 0 | 디스크에서 사용할 수 있어야 하는 최소 공간입니다. 이는 `yarn-nodemanager.local-dirs` 및 `yarn.nodemanager.log-dirs`에 적용됩니다. | 