Amazon EMR에서 스토리지 및 파일 시스템 작업
Amazon EMR과 Hadoop은 클러스터 단계를 처리할 때 사용할 수 있는 다양한 파일 시스템을 제공합니다. 데이터에 액세스하는 데 사용된 URI의 접두사를 기준으로 어떤 파일 시스템을 사용할지를 지정합니다. 예를 들어, s3://amzn-s3-demo-bucket1/path
는 EMRFS를 사용하는 Amazon S3 버킷을 참조합니다. 다음 표에서는 사용 가능한 파일 시스템과 언제 각 파일 시스템을 가장 적합하게 사용할 수 있는지에 대한 권장 사항이 나열됩니다.
Amazon EMR과 Hadoop은 클러스터를 처리할 때 일반적으로 다음 파일 시스템 중 두 개 이상을 사용합니다. Amazon EMR과 함께 사용되는 두 개의 기본 파일 시스템은 HDFS 및 EMRFS입니다.
중요
Amazon EMR 릴리스 5.22.0부터 Amazon EMR은 AWS 서명 버전 4를 단독으로 사용하여 Amazon S3에 대한 요청을 인증합니다. 릴리스 정보에 서명 버전 4가 단독으로 사용된다고 표시되어 있지 않는 한, 이전 Amazon EMR 릴리스에서는 AWS 서명 버전 2를 사용하는 경우도 있습니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서에서 Authenticating Requests (AWS Signature Version 4) 및 Authenticating Requests (AWS Signature Version 2)를 참조하세요.
파일 시스템 | 접두사 | 설명 |
---|---|---|
HDFS | hdfs:// (또는 접두사 없음) |
HDFS는 확장 가능하고 이동 가능한 하둡용 분산 파일 시스템입니다. HDFS의 이점은 클러스터를 관리하는 하둡 클러스터 노드와 개별 단계를 관리하는 하둡 클러스터 노드 간의 데이터 인식입니다. 자세한 내용은 Hadoop 설명서 HDFS는 마스터 및 코어 노드에서 사용됩니다. 한 가지 장점은 빠르다는 것이고, 단점은 클러스터가 종료될 때 회수되는 휘발성 스토리지라는 것입니다. 이 스토리지는 중간 작업 흐름 단계에서 생성된 결과를 캐시하는 데 가장 적합합니다. |
EMRFS | s3:// |
EMRFS는 Amazon EMR에서 직접 Amazon S3로 일반 파일을 읽고 쓰는 데 사용하는 Hadoop 파일 시스템의 구현입니다. EMRFS는 Hadoop과 함께 사용하기 위해 Amazon S3에 영구 데이터를 저장하는 편리한 기능을 제공하면서 동시에 Amazon S3 서버 측 암호화, 읽기 후 쓰기 일관성 및 목록 일관성과 같은 기능도 제공합니다. 참고이전에는 Amazon EMR에서 |
로컬 파일 시스템 |
로컬 파일 시스템은 로컬로 연결된 디스크를 참조합니다. Hadoop 클러스터를 생성할 때 인스턴스 스토어라는 미리 연결된 디스크 스토리지의 사전 구성된 블록과 함께 제공되는 EC2 인스턴스에서 각 노드가 생성됩니다. 인스턴스 스토어 볼륨의 데이터는 EC2 인스턴스의 수명 동안에만 유지됩니다. 인스턴스 스토어 볼륨은 버퍼, 캐시, 스크래치 데이터 및 기타 임시 콘텐츠와 같이 지속적으로 변경되는 임시 데이터를 저장하는 데 적합합니다. 자세한 내용은 Amazon EC2 인스턴스 스토리지를 참조하세요. 로컬 파일 시스템은 HDFS에서 사용되지만 Python은 로컬 파일 시스템에서도 실행되므로 인스턴스 스토어 볼륨에 추가 애플리케이션 파일을 저장하도록 선택할 수 있습니다. |
|
(레거시) Amazon S3 블록 파일 시스템 | s3bfs:// |
Amazon S3 블록 파일 시스템은 레거시 파일 스토리지 시스템입니다. 이 시스템은 사용하지 않는 것이 좋습니다. 중요클러스터 장애의 원인이 될 수 있는 경합 상태를 트리거할 수 있으므로 이 파일 시스템을 사용하지 않는 것이 좋습니다. 하지만 이 시스템은 레거시 애플리케이션에서 필요할 수 있습니다. |
파일 시스템에 액세스
데이터에 액세스하는 데 사용된 URI(Uniform Resource Identifier)의 접두사를 기준으로 어떤 파일 시스템을 사용할지를 지정합니다. 다음 절차에서는 다양한 유형의 파일 시스템을 참조하는 방법을 설명합니다.
로컬 HDFS에 액세스하려면
-
URI에
hdfs:///
접두사를 지정합니다. Amazon EMR은 URI에 접두사를 지정하지 않은 경로를 로컬 HDFS로 확인합니다. 예를 들어 다음 두 개의 URI는 HDFS에서 모두 동일한 위치로 확인됩니다.hdfs:///
path-to-data
/path-to-data
원격 HDFS에 액세스하려면
-
다음 예제와 같이 마스터 노드의 IP 주소를 URI에 포함시킵니다.
hdfs://
master-ip-address
/path-to-data
master-ip-address
/path-to-data
Amazon S3에 액세스하는 방법
-
s3://
접두사를 사용합니다.s3://
bucket-name
/path-to-file-in-bucket
Amazon S3 블록 파일 시스템에 액세스하는 방법
-
Amazon S3 블록 파일 시스템이 필요한 레거시 애플리케이션에만 사용합니다. 이 파일 시스템을 사용하여 데이터에 액세스하거나 저장하려면 URI에
s3bfs://
접두사를 사용합니다.Amazon S3 블록 파일 시스템은 크기가 5GB를 초과하는 파일을 Amazon S3에 업로드할 수 있도록 지원하기 위해 사용되었던 레거시 파일 시스템입니다. Amazon EMR이 AWS Java SDK를 통해 제공하는 멀티파트 업로드 기능을 사용하면 최대 5TB 크기의 파일을 Amazon S3 네이티브 파일 시스템에 업로드할 수 있으며 Amazon S3 블록 파일 시스템은 더 이상 사용되지 않습니다.
주의
이 레거시 파일 시스템에서는 파일 시스템을 손상시킬 수 있는 경합 상태가 발생할 수 있기 때문에 이 형식을 사용하지 말고 대신 EMRFS를 사용해야 합니다.
s3bfs://
bucket-name
/path-to-file-in-bucket