"하둡분산파일시스템 HDFS"의 두 판 사이의 차이

잔글 (→‎노드)
잔글 (→‎개요)
8번째 줄: 8번째 줄:
*블럭 크기: 64MB 또는 128MB<ref>보통 이정도를 사용하나, 커스터마이징 가능. 지정한 크기로 자른다. 단 마지막 블럭(자투리)의 경우는 그 용량만큼만 사용(블럭 크기를 다 쓰는 것이 아님)</ref>  
*블럭 크기: 64MB 또는 128MB<ref>보통 이정도를 사용하나, 커스터마이징 가능. 지정한 크기로 자른다. 단 마지막 블럭(자투리)의 경우는 그 용량만큼만 사용(블럭 크기를 다 쓰는 것이 아님)</ref>  
*블럭 복사본을 분산 저장
*블럭 복사본을 분산 저장
:3개 이상의 복제본 생성. 데이터 유실 방지<ref>일부 노드가 고장나더라도 다른 노드에 있는 복사본 데이터 사용 가능</ref>, 부하 분산
:3개<ref>설정에 따라 그 이상</ref>의 복제본 생성. 데이터 유실 방지<ref>일부 노드가 고장나더라도 다른 노드에 있는 복사본 데이터 사용 가능</ref>, 부하 분산
*설정을 통해 Rack 이중화 가능<ref>즉 설정을 통해 데이터노드 묶음을 지정하여 이중화 달성</ref>
*설정을 통해 Rack 이중화 가능<ref>즉 설정을 통해 데이터노드 묶음을 지정하여 이중화 달성</ref>



2013년 2월 20일 (수) 16:23 판

1 개요

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

2 노드

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

3 특징

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

4 같이 보기

5 주석

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