/ DISTRIBUTED SYSTEM

5. 하둡 파일 시스템

HDFS?
Hadoop으로 구성된 file system이며 매우 많은 데이터를 관리하기 위해 설계되었다.
(1) reliably
(2) high bandwidth to user application
Replicating file content (3배 정도)

1. Hadoop

2. HDFS

목표

매우 큰 분산 파일 시스템에 적합.

하드웨어 hardware failure가 났을 때 recovery

Batch Processing 에 최적화 되어있다. (MapReduce)

OS에 상관없이 user space에서 돌릴 수 있다. (어플리케이션이기 떄문)

구조

  • NameNode
  • DataNode
  • SecondaryNameNode

Read

Data Pipelining

Write

Error Recovery

  • NameNode Metadata

메모리에 메타데이터를 올림. 많은 datanode의 신호와 client의 요청을 빠르게 수행하기 위해

  • DataNode
  • Block server, Block Report(네임 노드에게 리포팅해준다.)
  • Heartbeats
  • Rack Awareness: 같은 rack 안에 다 저장하지 않고 또 다른 rack에 나머지 두 개의 복제본을 저장한다. 네트워크를 이용하므로 파이프라이닝은 복잡해지니 최소화하고 싶지만 reliability는 적당히 보장할 수 있다.
  • Block Placement
  • NameNode Failure
  • NameNode High Availability: AvatarNode (쌍둥이 노드)
  • Hadoop balancing: 새로운 데이터노드가 등록될 때 기존의 것을 나누어 각 기기 마다 데이터를 같은 비율로 저장할 수 있다. 하지만 접근 패턴은 알 수 없기 때문에 인기있는 노드가 무엇인지는 파악할 수 없다.
  • RAID를 적극적으로 이용한다.