[BigData] Hadoop HDFS의 파일 읽기, 쓰기 동작 과정

DAUN JO·2021년 9월 13일
0

BigData

목록 보기
1/4
post-thumbnail

Hadoop 2.0버전

💡 하둡 파일시스템 읽고 쓰기에 대해 공부하기

  • 빅데이터를 저장 (읽고, 쓰기)
  • 어떠한 파일 조각이 고장났을 시에도 데이터 제공 보장
  • 많은 사용자들이 접근 할 때 빠른 성능 보장

❓ HDFS란?

HDFSHadoop Distributed File System의 약자로 분산저장을 처리하기 위한 모듈이다. 범용 하드웨어에서 동작하고, 장애 복구성을 가지는 분산 파일 시스템을 목표로 한다.

  1. 블록단위 저장

    HDFS는 데이터를 블록 단위로 나누어 저장한다. 블록 사이즈보다 작다면 기존 파일의 사이즈로 저장하고 블록 사이즈보다 큰 크기의 데이터파일은 블록단위 나누어 저장하기 때문에 단일 디스크의 데이터보다 큰 파일도 저장할 수 있다.

  2. 장애복구
    HDFS는 장애 복구를 위해서 각 블록을 복제하여 저장한다. 블록의 기본 복제 단위는 3입니다. 하나의 블록은 3개의 블록으로 복제되고, 같은 Rack의 서버와 다른 Rack의 서버로 복제되어 저장된다. 블록에 문제가 생기면 복제한 다른 블록을 이용해서 데이터를 복구 한다.

  3. 읽기중심
    HDFS는 데이터를 한 번 쓰면 여러 번 읽는 것을 목적으로 한다. 따라서 파일의 수정은 지원하지 않는다.

  4. 데이터 지역성
    맵리듀스는 HDFS의 데이터 지역성을 이용해서 처리 속도를 증가시킨다. 처리 알고리즘이 있는 곳에 데이터를 이동시키지 않고, 데이터가 있는 곳에서 알고리즘을 처리하여 네트워크를 통해 대용량 데이터를 이동시키는 비용을 줄일 수 있다.


test file을 저장하려 한다.

⚡ HDFS 파일 쓰기 관점


1. Hadoop client를 이용해 test 파일을 저장한다. Hadoop client는 file을 3개로 쪼개 3개의 데이터 블락을 hdfs에 저장하려 한다.

  1. namenode에 3개의 블락이 있다고 요청한다.

  2. namenode는 hdfs에서 manager 역할을 한다. 모든 datanode의 정보를 가지고 있다. namenode는 datanode로부터 주기적으로 heartbeat를 받아 상태를 확인하고 저장할 3개의 datanode 정보를 전달한다.

  3. 3개의 datanode인 이유는 hdfs는 하나의 원본을 저장하고 2개의 사본을 같은 RACK에 하나, 다른 RACK에 하나 저장하기 때문이다.

  4. 3개의 블락을 순서대로 저장하기 위해 namenode로 부터 전달받은 datanode에 저장하고 저장 완료시 client에게 알려준다.


⚡ HDFS 파일 읽기 관점

  1. hadoop client가 test file을 보고싶다고 namenode에 요청

  2. namenode는 저장된 곳을 판단하여 각 블락별 저장된 datanode를 정렬하여 알려준다.


Ref.
https://www.youtube.com/watch?v=xacUzaFYQCI&t=166s
https://wikidocs.net/23582#_13

profile
🍕

0개의 댓글