728x90
1. HDFS
구분 | name node | data node | journal node |
설명 |
|
|
|
특징 |
|
|
|
2. EMR cluster EC2 node
구분 | master node | core node | task node |
설명 |
|
|
|
특징 |
|
|
|
Master Node (마스터 노드)
역할:
- 클러스터를 제어하고 작업을 조율하는 중앙 관리 노드
- Hadoop에서는 NameNode와 ResourceManager 역할을 수행
- 클러스터 내 모든 작업(job)의 스케줄링, 모니터링 및 배포를 담당
주요 기능:
- HDFS의 메타데이터 관리 (NameNode 역할)
- YARN 스케줄링 및 자원 관리 (ResourceManager 역할)
- JobHistoryServer를 통해 작업 기록 관리
- 클러스터 상태 및 노드 상태 모니터링
HDFS 존재 여부:
- HDFS가 존재
- 마스터 노드는 NameNode로서 HDFS 메타데이터를 관리
- 마스터 노드가 다운되면 HDFS 파일 시스템에 접근할 수 없게 됨
Core Node (코어 노드)
역할:
- 실제 데이터 저장 및 처리를 담당하는 작업 노드
- Hadoop에서는 DataNode와 NodeManager 역할을 수행
- 클러스터 내에서 데이터의 복제 및 분산 저장을 처리하며, 데이터 처리 작업을 실행
주요 기능:
- HDFS 데이터 저장 (DataNode 역할)
- MapReduce, Spark 등의 계산 작업 실행 (NodeManager 역할)
- 데이터가 클러스터 내에서 물리적으로 저장되는 유일한 노드
HDFS 존재 여부:
- HDFS가 존재
- 코어 노드는 DataNode로서 데이터 블록을 저장
- 데이터는 마스터 노드의 NameNode에 의해 관리
Task Node (태스크 노드)
역할:
- 데이터 저장 없이 계산 작업만 수행하는 노드
- Hadoop에서는 NodeManager 역할만 수행하며, DataNode 역할은 없음
- 클러스터의 확장성과 병렬 처리 성능을 높이기 위해 사용
- 추가적인 작업량 처리를 위해 유연하게 확장 및 축소할 수 있음
주요 기능:
- 데이터 처리 전담 노드 (데이터 저장 기능 없음)
- 스팟 인스턴스 등을 활용해 비용 효율적으로 확장 가능
- 일시적인 데이터 처리나 과부하 작업에 활용
HDFS 존재 여부:
- HDFS가 존재하지 않습니다.
- 태스크 노드는 DataNode 역할을 하지 않으며, 데이터는 코어 노드에서 관리
JournalNode의 역할 (기본 Hadoop 환경)
- JournalNode는 HDFS 고가용성(HA) 구성에서 메타데이터 변경 사항을 저장하는 역할
- Active NameNode가 메타데이터를 변경하면, 이를 JournalNode에 기록하고 Standby NameNode가 해당 기록을 복제하여 동기화
- 최소 3개의 JournalNode를 사용하여 쿼럼(Quorum)을 구성
EMR에서의 HDFS 및 HA 구성
- EMR은 NameNode 고가용성(HA) 구성을 직접 설정하지 않음
- 대신, EMR에서는 Amazon S3를 HDFS의 대안으로 많이 사용.
- S3는 내구성과 가용성이 뛰어나서 별도의 JournalNode 구성이 필요하지 않음
- S3를 사용하면 HDFS 메타데이터 관리가 필요하지 않고, NameNode 장애에 영향을 받지 않음
- EMRFS(EMR File System는 S3와 통합되어 Hadoop 애플리케이션에서 S3를 파일 시스템처럼 사용할 수 있도록 함
3. Spark Application (process)
Spark Application = driver process + 다수의 executor process
- driver와 executor process는 각각 노드에 구성이 됨
- driver process는 꼭 master 혹은 core node로 배정 되지 않고, task node로 배정 받을 수도 있음
- driver, executor process는 cluster를 띄울때 마다 매번 다른 노드로 갱신 됨(같을 수도 있음)
driver process
- 클러스터 노드 중 하나에서 실행되며 main()함수를 실행
- 스파크 애플리케이션 정보의 유지 관리, 사용자 프로그램이나 입력에 대한 응답, 전반적인 익스큐터 프로세스의 작업과 관련된 분석, 배포 그리고 스케줄링 역할을 수행하기 때문에 필수적
- 스파크 애플리케이션의 심장과 같은 존재, 애플리케이션의 수명 주기 동안 관련 정보를 모두 유지
executor porcess
- 드라이버 프로세스가 할당한 작업을 수행
- 진행 상황을 드라이버 노드에 보고
728x90
'BigData' 카테고리의 다른 글
[BigData] Parquet vs ORC vs Avro 빅데이터 파일 포멧 비교 정리 (0) | 2025.01.08 |
---|---|
[Hadoop] HDFS에 데이터 저장하기(뉴욕택시 데이터,green taxi data) (4) | 2021.07.04 |
댓글