Amazon EMR의 아키텍처를 개인적으로 정리하기 위해 작성한 포스팅입니다. 잘못된 내용이 있으면 댓글로 남겨주시면 감사하겠습니다!
Storage
AWS EMR에서 사용하는 스토리지 계층은 클러스터와 함께 사용되는 다양한 파일 시스템을 포함한다.
1. 하둡 분산 파일 시스템 (HDFS)
HDFS(Hadoop Distributed File System)는 하둡을 위한 분산, 확장 가능한 파일 시스템으로 데이터를 클러스터 내 여러 인스턴스에 걸쳐 분산 저장한다. 또한, 데이터 손실 방지를 위해 여러 인스턴스에 데이터의 복사본을 여러 개 저장한다. HDFS는 임시 저장 공간으로, 클러스터가 종료되면 해당 공간은 회수된다. 즉, HDFS는 클러스터의 수명 동안만 필요한 데이터를 저장하고, 클러스터의 작업이 완료되면 이 데이터를 삭제하는 하둡의 중간 처리 결과를 저장하는 ‘임시 디스크’와 같은 역할을 한다. (MapReduce 처리 중 중간 결과를 캐싱하거나 무작위 I/O가 많은 작업에 유용하다.)
2. EMR 파일 시스템 (EMRFS)
EMRFS는 Amazon S3에 저장된 데이터를 HDFS처럼 직접 액세스할 수 있도록 하둡을 확장한 시스템이다. 클러스터에서 파일 시스템으로 HDFS 또는 Amazon S3를 사용할 수 있으며, 일반적으로 Amazon S3는 입력 및 출력 데이터를 저장하는 데 사용되고, 중간 결과는 HDFS에 저장된다.
3. 로컬 파일 시스템
로컬 파일 시스템은 하둡 클러스터 내 각 노드에 연결된 디스크를 의미한다. 하둡 클러스터를 구성할 때, 각 노드는 Amazon EC2 인스턴스로 생성되며 이 인스턴스에는 '인스턴스 스토어'라는 로컬 디스크 저장소가 사전에 연결돼있다.
인스턴스 스토어는 임시 저장 공간으로 사용되며, 데이터는 해당 EC2 인스턴스가 실행되는 동안에만 존재한다. (vs EBS)
즉, 하둡 클러스터에서 로컬 파일 시스템은 클러스터의 작업 중 발생하는 임시 데이터를 처리하는데 사용되며, 인스턴스가 종료되면 그 데이터는 사라지는 일시적인 저장 공간을 의미한다.
Cluster resource management
Amazon EMR의 자원 관리 계층은 클러스터 자원을 관리하고 데이터 처리 작업을 스케줄링하는 역할을 한다. 기본적으로 Amazon EMR은 YARN (Yet Another Resource Negotiator)을 사용한다. YARN은 Apache Hadoop 2.0에서 도입된 컴포넌트로, 다양한 데이터 처리 프레임워크를 위해 클러스터 자원을 중앙에서 관리한다. 그러나 YARN을 사용하지 않는 다른 프레임워크와 애플리케이션이 Amazon EMR에도 제공된다.
Data processing frameworks
데이터 처리 프레임워크 계층은 데이터를 처리하고 분석하는 데 사용되는 엔진으로, YARN(자원 관리자)을 사용하거나 자체적인 자원 관리 시스템을 갖춘 프레임워크가 사용된다.
Hadoop MapReduce
- Hadoop MapReduce는 분산 컴퓨팅을 위한 오픈소스 프로그래밍 모델이다. 사용자는 Map 함수와 Reduce 함수를 제공하며, 나머지 병렬 분산 애플리케이션 작성 로직을 처리한다.
- Map 함수는 데이터를 키-값 쌍의 집합인 중간 결과로 매핑하고, Reduce 함수는 이 중간 결과를 결합하고 추가 알고리즘을 적용하여 최종 결과를 생성한다.
Apache Spark
- Spark는 큰 데이터 워크로드를 처리하기 위한 클러스터 프레임워크 및 프로그래밍 모델이다. Hadoop MapReduce와 마찬가지로 오픈소스 분산 처리 시스템이지만, 실행 계획을 위해 방향성 비순환 그래프(DAG, Directed Acyclic Graph)를 사용하고 데이터셋을 메모리에 캐싱한다.
- Amazon EMR에서 Spark를 실행할 때는 EMRFS를 사용하여 Amazon S3의 데이터에 직접 액세스할 수 있다.
'Cloud > AWS' 카테고리의 다른 글
Amazon EMR Overview (0) | 2024.09.09 |
---|---|
AWSome Day 정리 (0) | 2024.07.19 |
AWS VPC (0) | 2024.06.09 |
AWS EC2 기초 (0) | 2024.06.01 |
AWS IAM(Identity and Access Mangement) (0) | 2024.05.31 |