HADOOP) HDFS 기초


HDFS 

  1. HDFS 목표 
    • Hardware 장애 
      • 오류가 나면 자동으로 빠르게 회복되어야함 
    • 스트리밍 데이터 접근
      • 동일한 시간에 더 많은 양의 데이터 처리 
      • 배치 처리(유저들의 의한 인터렉티브한 사용보다는)
  2. 거대한 데이터 셋
  3. 단순한 일관성 모델(데이터 무결성)
    • 한번 쓰고 여러번 읽는 파일 처리 모델
    • append와 truncate 제외하고는 이미 저장되고 만들어진 데이터는 변경이 안됨
    • append는 데이터 끝에서 추가, 원하는 지점에 추가는 안됨 
  4. 이동연산이 데이터이동보다 더 싸다 
  5. 소프트웨어와 하드웨어 플랫폼 사의 이동성 

  1. NameNode 와 DataNode들 
    1. HDFS는 마스터와 슬레이브 구조

NameNode 
  1. 메타 데이터(파일 시스템이미지+파일 블록매핑정보) 관리
    • Fs이미지: 파일명, 디렉터리, 크기, 권한 
    • 파일에 대한 블록 매핑 정보: 어떤 블록이 어느 데이터노드에 저장되어있는지 
    • 메모리 전체에 메타데이터를 로딩 
  2. 데이터 노드 모니터링 
  3. 블록관리
    • 장애가 발생한 데이터 노드의 블록들을 새로운 데이터 노드로 복제 
    • 용량이 부족한 데이터 노드가 있으면 여유있는 데이터 노드로 블록 이동
    • 정해진 복제본 수와 일치하지 않는 블록의 복제본 삭제 혹은 복제 
  4. 클라이언트 요청 접수 

DataNode(실제 데이터 + 메타데이터)
    - 클라이언트가 HDFS에 저장하려는 데이터를 로컬디스크에 유지(DISK)
  1. 로우데이터 : 실제 데이터가 저장
  2. 메타데이터: 체크섬, 파일 생성 일자 



네임노드의 week point(hadoop 1.x)

네임노드는 메모리 영역에서 활동하니까 서버를 껐다가 키면 안의 내용들(메타데이터)이 사라져있다. 그래서 editslog와 fsimage 두개의 파일을 적용해 메타데이터를 로딩함 


*editslog: HDFS의 모든 변경이력 

보조 네임노드 
  1. editslog가 너무 커져버리면 네임노드에서 fsimage 파일 갱신을 할때 시간이 느려질 수 있음
  2. 보조네임노드는 주기적으로 (한시간 마다) fsimage을 갱신하는 역할(체크포인트)





















댓글