Server

[Cloud Server] HDFS (Hadoop Distributed File System)

Kim doing 2025. 3. 27. 11:38
  •  HDFS (Hadoop Distributed File System)?  

      - 대용량 데이터를 여러 컴퓨터에 분산해서 저장하고 관리하는 파일 시스템

 

  • 특징 

  - 분산 저장(Distributed Storage)

   : 데이터를 여러 개의 서버(노드)에 나누어 저장함으로써 대규모 데이터 저장이 가능, 데이터 처리 속도 향상

 

  - 고장 허용(Fault Tolerance)

   : 데이터의 복제(replication)를 통해 노드 장애가 발생하더라도 데이터 손실을 방지해. 일반적으로 데이터를 여러 노드에 복제해서 저장하기 때문에, 하나의 노드가 고장 나도 다른 노드에서 데이터를 읽을 수 있음.

 

  - 데이터 지역성(Data Locality) 

   : 데이터를 처리하는 애플리케이션이 가능한 한 저장된 데이터 근처(같은 노드 또는 근처 노드)에서 실행되도록 설계해서 데이터 이동을 최소화해 성능을 높이는 방식임.

 

 - 확장성( Scalability) 

  : 새로운 노드를 추가하거나 제거하는 방식으로 쉽게 시스템의 용량과 성능을 확장할 수 있음.

 

 

 

fig1. HDFS 전체 아키텍처 구조

 

  • HDFS 아키텍처 구성요소

      - Client

        : 사용자의 요청을 보내는 주체. 파일을 읽거나 쓰기 위해 HDFS에 접근함.

 

      - NameNode

        : HDFS의 중심 뇌. 파일의 메타데이터(어디에 저장이 되어 있는지, 어떠한 블록으로 나누어져 있는지 등)를 관리, 직접 데이터를 저장하지 않음.

 

      - Secondary NameNode 

        : 흔히 오해되지만 백업 서버는 아님. NameNode 의 로그를 병합해 주는 역할을 수행하며 , 장애 복구 시 중요한 역할.

 

      - DataNodes

        : 실제 데이터 블록이 저장되는 노드들임. 클러스터 안에 여러 개 존재, 데이터는 이들 사이에 나뉘어 저장됨.

 

      - Cluster Membership

       : 클러스터에 어떤 노드가 참여 중인지, 정상적으로 작동하고 있는지를 관리하는 기능.

 

 

  • 데이터의 흐름(fig1 참조)

     1.  Client가 파일 이름으로 데이터를 요청 

  

     2. NameNode가 해당 파일이 저장된 블록의 위치정보를 반환

 

     3.Client는 실제 데이터를 DataNode에서 직접 읽음

 

 

fig2. HDFS 내부 데이터 이동

 

  • HDFS 데이터의 핵심 흐림(fig2참조)

    - Client => NameNode 

        : 사용자가 파일을 읽거나 쓸 때, 우선 NameNode에 메타 데이터 요청을 보냄

 

   - 쓰기(Write) 

        : NameNode가 어떤 DataNode에 데이터를 저장할지 정해줌. 이때 데이터는 여러 노드에 복제되며 보통 3개의 복제본이 생성됨.

 

  - 복제 흐름

       : 데이터를 쓰는 클라이언트는 첫 번째 DataNode에 데이터를 전송하고 그 DataNode는 또 다른 노드로 데이터를 전달함. 이 과정을 통해 데이터는 체인처럼 여러 곳에 자동 복제 됨.

 

  - 읽기(Read) 

       : 사용자는 NameNode로부터 블록위치를 전달받고 , 가장 가까운 DataNode에서 직접 데이터를 읽음

 

 

※ Rack Awareness

       :fig2에서는 Rack 1, Rack 2로 구성되어 있음. 이는 HDFS가 서버들이 어떤 랙(물리적 위치 그룹)에 있는지 알고 데이터를 분산시킨다는 뜻임. 이로써 장애가 발생하더라고 다른 랙에서 데이터를 복구할 수 있어 내결함성을 확보함.

 

 

  • HDFS 활용 분야

    - 빅데이터 처리(Hadoop, Spark 등과 함께 사용)

    - 대규모 로그 분석

    - 데이터 웨어하루징 및 데이터 분석 플랫폼 등 

 

 

==> HDFS는 빅데이터를 효율적으로 처리하고 관리하기 위한 핵심 기반 시스템