

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

# Amazon EMR 작업 중 클러스터 입력 및 출력 오류
<a name="emr-troubleshoot-errors-io"></a>

다음 오류는 클러스터 입력 및 출력 작업에서 일반적으로 발생합니다. 이 주제의 지침을 사용하여 구성 문제를 해결하고 구성을 확인합니다.

**Topics**
+ [Amazon Simple Storage Service(Amazon S3)에 대한 경로에 3개 이상의 슬래시가 있나요?](#threeslashes)
+ [입력 디렉터리를 재귀적으로 통과하려고 합니까?](#recurseinput)
+ [출력 디렉터리가 이미 있습니까?](#directoryexist)
+ [HTTP URL을 사용하여 리소스를 지정하려고 합니까?](#httpurl)
+ [잘못된 이름 형식을 사용하여 Amazon S3 버킷을 참조하고 있나요?](#validdnsname)
+ [Amazon S3에서 또는 Amazon S3로 데이터를 로드하는 데 문제가 있나요?](#emr-troubleshoot-errors-io-1)

## Amazon Simple Storage Service(Amazon S3)에 대한 경로에 3개 이상의 슬래시가 있나요?
<a name="threeslashes"></a>

 Amazon S3 버킷을 지정할 때 URL 끝에 후행 슬래시를 포함해야 합니다. 예를 들어, 버킷을 "s3n://amzn-s3-demo-bucket"로 참조하는 대신에, "s3n://amzn-s3-demo-bucket/"을 사용해야 합니다. 그렇지 않으면 대부분의 경우 Hadoop에서 클러스터가 실패합니다.

## 입력 디렉터리를 재귀적으로 통과하려고 합니까?
<a name="recurseinput"></a>

 Hadoop에서는 입력 디렉터리를 재귀적으로 검색하여 파일을 찾을 수 없습니다. /corpus/01/01.txt, /corpus/01/02.txt, /corpus/02/01.txt 등의 디렉터리 구조가 있으며 /corpus/를 클러스터의 입력 파라미터로 지정하는 경우, /corpus/ 디렉터리가 비어 있고 Hadoop에서는 하위 디렉터리의 콘텐츠가 확인되지 않으므로 어떠한 입력 파일도 찾을 수 없습니다. 마찬가지로, Hadoop에서는 Amazon S3 버킷의 하위 디렉터리를 재귀적으로 확인하지 않습니다.

 입력 파일을 하위 디렉터리가 아니라 입력 디렉터리 또는 지정하는 Amazon S3 버킷 자체에 들어 있어야 합니다.

## 출력 디렉터리가 이미 있습니까?
<a name="directoryexist"></a>

 이미 존재하는 출력 경로를 지정하는 경우 대부분의 경우 Hadoop에서 클러스터가 실패합니다. 즉, 클러스터를 일회성으로 실행하고 나서 동일한 파라미터를 사용하여 해당 클러스터를 다시 실행하는 경우 처음에는 작동하지만 그 이후에는 작동하지 않을 것입니다. 첫 번째 실행 후 출력 경로가 존재하므로 모든 이후 실행이 실패합니다.

## HTTP URL을 사용하여 리소스를 지정하려고 합니까?
<a name="httpurl"></a>

 Hadoop에서는 http:// 접두사를 사용하여 지정한 리소스 위치를 허용하지 않습니다. HTTP URL을 사용하여 리소스를 참조할 수 없습니다. 예를 들어, http://mysite/myjar.jar를 JAR 파라미터로 전달하면 클러스터가 실패합니다.

## 잘못된 이름 형식을 사용하여 Amazon S3 버킷을 참조하고 있나요?
<a name="validdnsname"></a>

 "amzn-s3-demo-bucket1.1"과 같은 버킷 이름을 Amazon EMR에서 사용하려는 경우 Amazon EMR에서는 버킷 이름이 유효한 RFC 2396 호스트 이름이어야 하므로 클러스터에 실패합니다. 이름은 숫자로 끝날 수 없습니다. 또한, Hadoop 요구 사항으로 인해 Amazon EMR에 사용되는 Amazon S3 버킷 이름에는 소문자, 숫자, 마침표(.) 및 하이픈(-)만 포함되어야 합니다. Amazon S3 버킷 이름 형식 지정 방법에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*에서 [버킷 규제 및 제한](https://docs.aws.amazon.com/AmazonS3/latest/userguide/index.html?BucketRestrictions.html)을 참조하세요.

## Amazon S3에서 또는 Amazon S3로 데이터를 로드하는 데 문제가 있나요?
<a name="emr-troubleshoot-errors-io-1"></a>

 Amazon S3는 가장 널리 사용되는 Amazon EMR의 입출력 소스입니다. 흔하게 하는 실수 중 하나는 Amazon S3를 일반적인 파일 시스템처럼 다루는 것입니다. 클러스터 실행 시 파일 시스템과 Amazon S3 간의 차이를 고려해야 합니다.
+  Amazon S3에서 내부 오류가 발생하는 경우 애플리케이션은 이를 적절하게 처리하고 해당 작업을 다시 시도해야 합니다.
+  Amazon S3의 직접호출에 따른 결과가 반환되는 데 너무 오래 걸리는 경우 애플리케이션에서 Amazon S3를 직접 호출하는 빈도를 줄여야 할 수도 있습니다.
+  Amazon S3 버킷 내 모든 객체를 나열하는 작업은 상당한 비용이 드는 직접 호출입니다. 애플리케이션에서 이 작업을 수행하는 횟수를 최소화해야 합니다.

 클러스터와 Amazon S3 간의 상호 작용 방식을 개선할 수 있는 몇 가지 방법이 있습니다.
+  Amazon EMR의 최신 릴리스 버전을 사용하여 클러스터를 시작합니다.
+ S3DistCp를 사용하여 Amazon S3 내부 및 외부로 객체를 이동합니다. S3DistCp는 오류 처리를 구현하고 Amazon S3의 요구 사항에 맞게 재시도 및 백오프합니다. 자세한 내용은 [S3DistCp를 사용한 분산 복사](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html)를 참조하세요.
+  최종 일관성을 염두에 두고 애플리케이션을 설계합니다. 클러스터를 실행 중인 동안 중간 데이터 스토리지용으로 HDFS를 사용하고 Amazon S3는 초기 데이터를 입력하고 최종 결과를 출력하는 용도로만 사용합니다.
+  클러스터에서 초당 200개 이상의 트랜잭션을 Amazon S3로 커밋하는 경우 [지원 센터](https://aws.amazon.com/contact-us/)에 문의하여 초당 대량 트랜잭션을 처리할 수 있도록 버킷을 준비하고 [Amazon S3 성능 팁 및 요령](https://aws.amazon.com/blogs/aws/amazon-s3-performance-tips-tricks-seattle-hiring-event/)에 설명된 주요 파티션 전략을 사용하는 방안을 고려합니다.
+  Hadoop 구성 설정 io.file.buffer.size를 65536로 설정합니다. 이렇게 하면 Hadoop에서 Amazon S3 객체를 탐색하는 데 드는 시간이 단축됩니다.
+  클러스터에서 Amazon S3 동시성 문제가 발생하는 경우 Hadoop의 추론적 실행 기능을 비활성화하는 것을 고려합니다. 이 기능은 느린 클러스터 문제를 해결할 때도 유용합니다. `mapreduce.map.speculative` 및 `mapreduce.reduce.speculative` 속성을 `false`로 설정하여 이 작업을 수행할 수 있습니다. 클러스터를 시작할 때 `mapred-env` 구성 분류를 사용하여 이러한 값을 설정할 수 있습니다. 자세한 내용은 *Amazon EMR 릴리스 안내서*의 [애플리케이션 구성](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)을 참조하세요.
+  Hive 클러스터를 실행 중인 경우 [Amazon S3와 Hive 간에 데이터를 로드하는 데 문제가 있나요?](emr-troubleshoot-error-hive.md#emr-troubleshoot-error-hive-3) 섹션을 참조하세요.

 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*에서 [Amazon S3 오류 모범 사례](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ErrorBestPractices.html)를 참조하세요.