Hadoop & HDFS

HelloPong·2025년 8월 25일

공부

목록 보기
25/39
post-thumbnail

빅데이터 분산 처리의 필요성

📌 들어가며

오늘날 서비스는 매일 수백만 명의 사용자와 상호작용하고, 로그·트랜잭션·센서 데이터가 실시간으로 쏟아진다.
단일 서버로는 이 모든 데이터를 감당하기 어렵다. 그래서 빅데이터 분산 처리 시스템이 등장했다.


⚠️ 단일 서버의 한계

  1. 용량 한계

    • 서버 한 대의 디스크는 수 TB 수준.
    • 페타바이트(PB) 단위 데이터는 단일 서버에 담기 힘듦.
  2. 성능 한계

    • CPU·메모리 자원이 고정 → 동시 요청 많아지면 병목 발생.
    • 예: 로그 1TB를 한 대 서버로 집계하면 몇 시간~며칠 소요.
  3. 장애 내성 부족

    • 하드디스크/서버 한 대가 죽으면 데이터 전체가 사라질 수 있음.

💡 분산 처리의 아이디어

  • 데이터를 여러 대 서버에 나눠 저장하고,
  • 연산도 여러 대 서버에서 동시에 수행.

즉,

1대 서버에서 10시간 걸릴 작업
→ 10대 서버에서 병렬 처리하면 1시간에 끝낼 수 있음

🗂️ 분산 시스템에서 해결하는 문제

  1. 확장성 (Scalability)

    • 서버를 더 붙이면 처리량도 비례해서 늘어나야 한다.
  2. 내결함성 (Fault Tolerance)

    • 일부 서버가 죽어도 데이터가 안전하게 유지되어야 한다.
  3. 저비용 인프라 (Commodity Hardware)

    • 값싼 서버 여러 대로도 대규모 데이터 처리 가능해야 한다.

🧰 이를 해결하는 프레임워크

  • Hadoop (하둡): 데이터를 블록 단위로 여러 서버에 저장(HDFS), MapReduce로 배치 처리.
  • Spark: 메모리 기반 분산 처리, 빠른 분석·스트리밍 지원.
  • Kafka: 실시간 로그 스트리밍 파이프라인.
  • Data Lake / DW: 원시 데이터 저장 vs 분석용 저장소.

✅ 마무리

분산 처리 시스템은 "대규모 데이터를 안전하고 빠르게 처리하기 위해 등장"했다.


Hadoop과 HDFS 이해하기

📌 Hadoop이란?

Hadoop은 대용량 데이터를 저장·처리하기 위한 오픈소스 프레임워크다.
구성 요소는 크게 세 가지다.

  1. HDFS (Hadoop Distributed File System) → 분산 저장
  2. YARN (Yet Another Resource Negotiator) → 자원 관리·스케줄링
  3. MapReduce → 배치 처리 엔진

👉 이번에는 Hadoop의 핵심, HDFS를 집중적으로 본다.


🗄️ HDFS(Hadoop Distributed File System)의 구조

HDFS는 큰 파일을 블록 단위로 쪼개 여러 서버에 나눠 저장하는 방식이다.

  • NameNode

    • 메타데이터 관리 (파일 이름, 경로, 블록 위치)
    • 직접 데이터 저장하지 않음
  • DataNode

    • 실제 데이터 블록 저장
    • 블록을 복제(기본 3개)해서 여러 서버에 분산 배치

📍 즉, NameNode는 “지도”, DataNode는 “창고” 역할.


⚙️ 파일 저장 예시

파일 log.txt (300MB)를 HDFS에 저장한다고 하자.

  • 블록 크기 = 128MB
  • 복제 계수 = 3
  1. log.txt → 블록1(128MB), 블록2(128MB), 블록3(44MB)

  2. HDFS가 블록들을 서버에 자동 분산 배치

    • 블록1 → 서버A, 서버B, 서버C
    • 블록2 → 서버B, 서버C, 서버D
    • 블록3 → 서버A, 서버C, 서버D
  3. NameNode는 “파일과 블록·위치 매핑 정보”만 저장

👉 사용자가 log.txt를 요청하면, NameNode에서 위치를 알려주고 클라이언트가 DataNode에서 직접 블록을 가져와 합친다.


💡 HDFS의 특징

  1. 장애 내성

    • 블록을 여러 서버에 복제 → 한 서버가 죽어도 데이터 손실 없음
  2. 확장성

    • 서버(DataNode)를 추가하면 자동으로 저장 공간 확장
  3. 데이터 지역성

    • 연산(MapReduce, Spark)을 데이터가 저장된 서버에서 실행 → 네트워크 전송 최소화
  4. 저렴한 하드웨어

    • 고가 장비 대신 일반 서버 수십~수백 대로 PB 단위 데이터 처리 가능

⚠️ 한계점

  • 작은 파일 수억 개 저장에는 비효율적 (메타데이터 폭증)
  • 실시간 처리엔 느림 (배치 처리용)
  • NameNode가 단일 장애 지점(SPOF) → 최근엔 HA(이중화) 지원

✅ 마무리

HDFS는 하둡의 심장이다.

  • 파일을 쪼개서 여러 서버에 나누고
  • 블록을 복제해 장애를 대비하며
  • 대용량 데이터를 안정적으로 저장할 수 있다.

0개의 댓글