프로그래밍

하둡, HDFS란 무엇인가??

JnJun 2021. 7. 11. 11:30
SMALL

하둡

 

대용량 데이터를 분산처리 할 수 있도록 지원하는 자바기반의 오픈소스 프레임 워크

 

(HDFS + MapReduce)

 

문제점

 

- 네임노드가 관리하는 메타 정보는 메모리로 관리되기 때문에 메모리 용량에 따라

 

  HDFS에 저장하는 파일과 티렉터리 개수 제한

 

- 한 번 저장한 파일은 수정불가 (최근 append 기능 추가)

 

HDFS

 

대용량 파일을 분산된 서버에 저장하고 저장된 데이터를 빠르게 처리할 수 있게 설계

 

된 파일 시스템

 

설계 목표

 

1. 장애 복구

 

 - 복제데이터 함께 저장, 주기적으로 서버간의 상태 체크

 

2. 스트리밍 방식의 데이터 접근

 

 - 클라이언트 요청을 빠른 시간 내에 처리하는 것 보다는 동일한 시간 내에 더 많은

 

데이터 처리하는 것을 추구

 

 - 연속적으로 데이터 접근

 

3. 대용량 데이터 저장

 

4. 데이터 무결성

 

HDFS 아키텍처

 

1. 블록 구조 파일 시스템

 

저장할 파일을 특정 크기의 블록으로 나눠져 분산된 서버에 저장.

 

블록의 크기에 따라 성능 달라짐

 

(Disk Seek time, Metadata size, Client-Namenode 통신 이슈) 

 

2. Master(NameNode) - Slave(DataNode) 아키텍처

 

가. NameNode

 

 1) 메타데이터(파일 시스템 이미지, 파일 블록 매핑 정보) 관리 

 2) 데이터노드 모니터링

   - 데이터 노드는 주기적으로 hearbeat 메세지 전송

   - heartbeat : 데이터노드 상태 정보, 블록의 목록으로 구성

   - 이를 이용해 데이터노드의 실행상태와 용량 모니터링 하고 장애 판단.

 3) 블록 관리 

 4) 클라이언트 요청 접수

 

* Master-Slave model : 하나의 Device or process가 하나 이상의 다른 Device or Process에 대한 제어권을 가지는 통신모델

 

 나. DataNode

 

  - 클라이언트가 HDFS에 저장하는 파일

   (실제 Raw 데이터 + 메타데이터가 설정되 있는 파일) 을 로컬 디스크에 유지



LIST