본문 바로가기
BigData

[BigData] 헷갈릴 만한 용어 정리 HDFS 노드, EMR cluster 노드, Spark Application (process) 정리

by 스파이디웹 2021. 8. 19.
728x90

1. HDFS

구분 name node data node journal node
설명
  • 파일 시스템의 메타데이터(파일명, 디렉터리 구조, 블록 위치 등)를 관리
  • 실제 데이터는 보관하지 않고, 어떤 데이터 블록이 어느 DataNode에 저장되어 있는지 추적
  • 실제 데이터를 저장하고 관리
  • NameNode의 지시에 따라 데이터를 저장하거나 삭제하고, 주기적으로 상태를 NameNode에 보고
  • 고가용성(HA) 환경에서 NameNode 간 메타데이터 변경 사항을 기록
  • Active NameNode가 장애 발생 시 Standby NameNode가 JournalNode의 로그를 통해 복구
특징
  • NameNode의 부하를 줄이고 장애 발생 시 복구 시간을 단축
  • NameNode의 백업으로 작동하지만, NameNode와 1:1로 동작하지 않음
  • 다수의 DataNode로 클러스터가 구성
  • 데이터는 여러 블록으로 분산되어 저장
  • 데이터 복제(Replication)를 통해 내결함성을 보장
  • HA 환경에서 필수적으로 사용
  • 최소 3개의 JournalNode를 구성하는 것이 일반적

2. EMR cluster EC2 node

구분 master node core node task node
설명
  • 클러스터를 관리하고 작업을 조율
  • 데이터 저장 및 처리 작업을 수행
  • 데이터 저장 없이 작업(계산)만 수행
특징
  • Hadoop에서는 NameNode ResourceManager 역할을 수행
  • Hadoop에서는 DataNodeNodeManager 역할을 수행
  • 추가적인 리소스를 제공하여 병렬 처리를 향상

Master Node (마스터 노드)

역할:

  • 클러스터를 제어하고 작업을 조율하는 중앙 관리 노드
  • Hadoop에서는 NameNodeResourceManager 역할을 수행
  • 클러스터 내 모든 작업(job)의 스케줄링, 모니터링 및 배포를 담당

주요 기능:

  • HDFS의 메타데이터 관리 (NameNode 역할)
  • YARN 스케줄링 및 자원 관리 (ResourceManager 역할)
  • JobHistoryServer를 통해 작업 기록 관리
  • 클러스터 상태 및 노드 상태 모니터링

HDFS 존재 여부:

  • HDFS가 존재
  • 마스터 노드는 NameNode로서 HDFS 메타데이터를 관리
  • 마스터 노드가 다운되면 HDFS 파일 시스템에 접근할 수 없게 됨

Core Node (코어 노드)

역할:

  • 실제 데이터 저장 및 처리를 담당하는 작업 노드
  • Hadoop에서는 DataNodeNodeManager 역할을 수행
  • 클러스터 내에서 데이터의 복제 및 분산 저장을 처리하며, 데이터 처리 작업을 실행

주요 기능:

  • 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

댓글