본문 바로가기
AI Journey/클라우드

분산 파일 시스템(DFS)의 개념과 하둡(Hadoop)의 원리

by 보눔비스타 2025. 12. 17.

클라우드 환경에서 대용량 데이터를 저장하는 핵심 기술인 분산 파일 시스템(DFS)과, 이를 구현한 하둡(Hadoop)에 대해 알아보자.

분산 파일 시스템 (DFS) 이란?

DFS의 핵심 아이디어는 "데이터를 쪼개서 분산 저장하고, 사용자 가까이에서 빠르게 처리하는 것"이라 할 수 있다.

DFS(Distributed File System)는 대용량 데이터를 네트워크로 연결된 여러 컴퓨터(노드)에 분산하여 저장하는 시스템 아키텍처를 말한다.

 

  • 분산 저장 (Distribution): 하나의 컴퓨터에 다 들어가지 않는 거대한 데이터(Big Data)를 일정한 크기의 조각(Chunk)으로 잘라서 여러 서버에 흩뿌려 저장한다.
  • 복제 (Replication): 분산된 서버 중 하나가 고장 나더라도 데이터가 사라지지 않도록 복사본을 만든다. 
  • 투명성 (Transparency): 사용자는 데이터가 쪼개져 있는지, 어느 서버에 있는지 알 필요 없이 마치 하나의 하드디스크를 쓰는 것처럼 편리하게 접근한다.
  • DFS는 사용자가 가까운 곳에서 데이터를 빠르게 가져다 쓸 수 있도록 돕는 CDN(Contents Delivery Network) 기술과 유사하다.

하둡(Hadoop)이란?

DFS라는 이론을 실제 사용할 수 있는 소프트웨어로 구현한 대표적인 예가 바로 하둡(Hadoop)이며, 여기서 사용하는 파일 시스템을 HDFS(Hadoop Distributed File System)라고 한다.

① 데이터 복제 저장

하둡은 데이터 안정성과 효율성을 위해 기본적으로 데이터를 3곳에 복제(Replication Factor: 3)하여 저장한다. 이는 데이터 손실을 방지하고, 특정 노드에 장애가 발생해도 시스템이 멈추지 않게 하기 위함이다.

 

  • 첫 번째 복제본은 데이터를 업로드하는 로컬 노드에 저장
  • 두 번째 복제본은 다른 랙(Rack)에 있는 노드에 저장 (랙 전체 정전 대비).
  • 세 번째 복제본은 같은 랙의 다른 노드에 저장

 

② 하둡의 서버 구조 (Master-Slave)

하둡은 철저하게 '관리자'와 '일꾼'으로 역할을 나눈다.

Name Node: Master (Server)로 데이터의 위치 정보(메타데이터)만 관리한다. 실제 데이터가 없으므로 비교적 작은 용량으로도 운영 가능하다.

Data Node: Slave (Client)로 실제 데이터 조각을 저장한다. 대용량을 감당해야 하므로 큰 저장 공간과 메모리가 필요하다.

 

③ 데이터 처리 방식: MapReduce (맵리듀스)

하둡은 저장된 데이터를 처리할 때 <Key : Value> 형태(JSON 등)를 주로 사용하며, 두 단계를 거쳐 고속으로 연산한다.

 

  • Map (매핑): 흩어진 데이터를 메모리로 불러와 Key를 기준으로 묶는다.
  • Reduce (리듀싱): 메모리 상에서 분류된 데이터를 목적에 맞게 재조립하여 결과를 도출한다.

이 모든 과정은 하둡 생태계(Hadoop Eco-System)를 통해 더욱 효율적으로 관리된다.

 

RDBMS vs NoSQL(Hadoop)

데이터를 다루는 방식의 차이를 이해해야 한다.

  • RDBMS (SQL)
    • MySQL, Oracle 등은 데이터의 이름, 타입, 크기 등 스키마(Schema)를 미리 정의해야만 저장할 수 있다.
  • Hadoop (NoSQL)
    • 스키마 없이 <Key : Value> 구조(JSON 형태)로 유연하게 저장한다. 형식이 정해지지 않은 로그 파일이나 소셜 미디어 데이터 처리에 유리하다.

하둡 아키텍처의 진화 - 컨테이너 기술

과거 하둡에서 정립된 분산 처리 구조는 현대 클라우드 기술인 도커(Docker)와 쿠버네티스(Kubernetes)의 기반이 되었다.

 

  • 하둡의 NameNode쿠버네티스Master Node도커 스웜(Docker Swarm)Manager 역할과 같다.
  • 하둡의 DataNode쿠버네티스Pod나 도커의 Container 역할과 같다.
  • 메인 이미지를 설정하고, 이를 수십~수천 개로 복제하여 확장한다는 기본 원리는 동일하다.