하둡분산파일시스템 HDFS

Jmnote (토론 | 기여)님의 2013년 2월 20일 (수) 15:31 판 (→‎개요)

1 개요

Hadoop Distributed File System; HDFS
하둡분산파일시스템, 하둡 분산형 파일 시스템
  • 하둡의 구성요소 중 하나[1]
  • 분산형 파일시스템
  • 하둡 네트워크에 연결된 기기에 데이터를 분산 저장
  • 노드 클러스터(개별 컴퓨터)에 분산 저장
  • 블럭 크기: 64MB 또는 128MB[2]
  • 블럭 복사본을 분산 저장
3개 이상의 복제본 생성. 데이터 유실 방지[3], 부하 분산
  • 설정을 통해 Rack 이중화 가능[4]

2 노드

  • 클라이언트(client): 요청자. 파일을 쓰고 싶다/읽고 싶다
파일을 쓰고 싶다 → 파일을 블럭단위로 나눈다 → 네임노드야, 블럭을 쓸만한 데이터노드 좀 알려줘[5]
  • 네임노드(namenode): 마스터 서버. 데이터노드 전체를 관리함. SPOF. 블럭-데이터노드 목록과 데이터노드-블럭 목록을 관리함
클라이언트가 블럭을 쓰고 싶다고 하면 → 데이터노드 3대를 알려줌.[6]
  • 데이터노드(datanodes): 데이터 저장되는 서버. 최대 약 4000대까지 가능[7]. 3초에 한번 네임노드로 헛빗 보냄.

3 특징

  • 기본파일시스템 대비 총 4배 정도의 용량이 필요함[8]
  • Read, Write 가능
  • Modify, Append 불가/금지
  • 인프라 튜닝이 중요
data controller 사양이 중요
리눅스 설정

4 같이 보기

5 주석

  1. 하둡의 파일시스템으로 반드시 HDFS만 사용가능한 것은 아님. 그렇지만 국내 하둡 활용사례의 핵심은 HDFS!
  2. 해당 크기로 자른다. 단 마지막 블럭(자투리)의 경우는 그 용량만큼만 사용(블럭 크기를 다 쓰는 것이 아님)
  3. 일부 노드가 고장나더라도 다른 노드에 있는 복사본 데이터 사용 가능
  4. 즉 설정을 통해 데이터노드 묶음을 지정하여 이중화 달성
  5. 블럭마다 데이터노드 목록을 받음
  6. 블럭별로 데이터노드 목록은 바뀜. 따라서 파일 1개가 여러대에 골고루 분산 저장됨
  7. 2013년 초 기준. 설계의 문제가 아니라 인프라의 문제. 네트워크 대역폭을 많이 필요로 하기 때문에 네트워크 장비가 뒷받침되어야 함.
  8. 복사본 3벌+메타데이터(파일 1개당 1KB). 대충 단순 계산법
  9. 성능 저하 있을 수 있음
  10. 예를 들어 256KB 이하일 때. 파일용량에 비해 메타데이터가 많음
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}