본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(HDFS에서 넘어옴)
Hadoop Distributed File System
  1. 클라이언트로부터 특정 파일에 대한 요구 전달
  2. 네임노드에서 해당 파일을 보관하고 있는 블록 정보 탐색
  3. 실제 데이터가 보관되어 있는 데이터노드 위치 파악
  4. 데이터노드에서 파일 처리
Namenode; 마스터 노드
  • 메타 데이터만 보관하고, 실제 데이터는 저장하지 않음
Datanode; 슬레이브 노드
  • 실제 데이터를 보관하는 노드
  • 64MB, 128MB 등의 블록 단위로 데이터 저장
결함 허용, 성능 향상을 위해 데이터와 노드 다중 구성

네임노드 이중화

편집 원본 편집
  • 클러스터에 2개의 네임노드를 구축하여 고가용성 보장
    • HA 모드: Active - Standby로 운영(실시간 동기화)
    • Non-HA 모드: Secondary Name Node 이용(동기화는 되지 않음)
  • Secondary NameNode 는 이름과 달리 네임노드가 죽었을 때 곧바로 넘겨받는 대기 노드가 아니다. 네임노드의 파일 시스템 이미지(fsimage)와 변경 로그(edits)를 주기적으로 합쳐 체크포인트를 만들고 변경 로그가 너무 커지지 않게 하는 보조 노드이다. 기본 체크포인트 주기는 1시간(dfs.namenode.checkpoint.period)이다.[1] 네임노드가 고장 나면 이 체크포인트로 메타데이터를 되살릴 수 있으므로 넓은 뜻의 백업 역할을 하지만, 자동 장애 조치는 HA 모드의 Standby 네임노드가 맡는다
  • 데이터를 기본 3 Copy Replication 형성
  • 신뢰성 보장: 하나의 노드, 데이터가 손실되어도 무중단 동작 보장
  • 성능 향상: 데이터의 지역성을 향상시켜 빠른 처리 도모

HDFS 는 한 번 쓰고 여러 번 읽는(write-once-read-many) 대용량 파일을 위해 설계되었고, 읽기와 쓰기가 비대칭이다.[2]

  • 읽기 - 클라이언트는 네임노드에서 블록 위치만 받고, 데이터는 복제본 가운데 가장 가까운 데이터노드(같은 노드, 같은 랙, 같은 데이터센터 순)에서 직접 읽는다. 복제본 하나만 읽으면 되고 여러 클라이언트가 서로 다른 복제본을 나눠 읽을 수 있어 빠르다.
  • 쓰기 - 복제 계수가 3 이면 네임노드가 정한 데이터노드 세 곳이 파이프라인을 이룬다. 클라이언트가 첫 데이터노드에 보내면 그 노드가 저장하면서 두 번째로, 두 번째가 세 번째로 넘긴다. 블록은 모든 복제본에 저장되었다는 확인이 거슬러 돌아와야 완료되므로 읽기보다 느리다.
  • 데이터는 네임노드를 거치지 않는다. 네임노드는 메타데이터(파일 이름, 블록 위치)만 다루므로 "네임노드에서 읽고 쓴다"는 말은 틀리다.
  • 쓰기가 끝난 파일을 읽는 것이 기본 사용 형태지만, 그 때문에 읽기가 느려지는 것은 아니다.

자주 나오는 정리

편집 원본 편집
  • 구글의 분산 파일 시스템 GFS(Google File System) 논문을 바탕으로 설계를 본떠 자바로 새로 구현한 오픈소스다 → 구글 파일 시스템
  • 블록 복제 수(Replication factor)는 기본값이 3 이며 사용자가 설정으로 바꿀 수 있다(dfs.replication).
  • 네임노드는 파일 이름, 블록 위치 같은 메타데이터를 관리하고, 실제 블록은 데이터노드에 저장된다.
  • HDFS 구성 요소의 이름은 NameNode, DataNode, Secondary NameNode 이다. 마스터·슬레이브는 네임노드와 데이터노드의 역할을 가리키는 일반 용어이고, 'Secondary master node' 같은 구성 요소는 없다[2]
  1. ↑ 「HDFS Users Guide」, Apache Hadoop, https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html, 확인일: 2026-11-04.
  2. ↑ 2.0 2.1 「HDFS Architecture」, Apache Hadoop, https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html, 확인일: 2026-11-04.