하둡분산파일시스템 HDFS

1 개요[ | ]

Hadoop Distributed File System (HDFS)
하둡분산파일시스템, 하둡 분산형 파일 시스템, 하둡파일시스템
  • 분산 파일시스템
  • 하둡의 구성요소 중 하나[1]
  • 하둡의 하위 레이어(저장 레이어)
  • 하둡 네트워크에 연결된 기기에 데이터를 분산 저장
  • 노드 클러스터(개별 컴퓨터)에 분산 저장
  • 블럭 크기: 64MB 또는 128MB[2]
  • 블럭 복사본을 분산 저장
3벌[3]의 복제본 생성. 데이터 유실 방지[4], 부하 분산
  • 설정을 통해 Rack 이중화 가능[5]
  • 너치에서 파생[6]
  • 매우 안정적. 온라인 처리 가능.[7]

 

2 노드[ | ]

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

3 특징[ | ]

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

4 같이 보기[ | ]

5 참고[ | ]

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