본문 바로가기
DB/Hadoop

빅데이터 기반의 분산 처리 클러스터 기능을 가진 하둡(Hadoop)

by JeeU147 2020. 3. 26.
반응형

 

큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임워크라고 할 수 있습니다.

 

장점 :

 

- 저렴한 구축비용과 비용대비 빠른 데이터 처리

- 일부 장비에 장애가 발생하더라도 전체 시스템 사용성에 영항이 적음

- HDFS는 데이터를 저장하면, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지

 

단점 :

 

- HDFS에 저장된 데이터를 변경 불가

- 많은 버전과 부실한 서포트, 설정의 어려움

- 서버 재부팅되면 모든 메타데이터 유실 가능성 있음

 

여기서 HDFS란 ?

 

- HDFS는 Hadoop Distributed File System의 약자이다.

수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일시스템이다. 

 

네임노드(namenode)와 데이터노드(datanode)의 기능

 

- HDFS는 마스터/슬레이브(master/slave) 구조를 가진다.

- HDFS 클러스터는 하나의 네임노드와, 파일 시스템을 관리하고 클라이언트의 접근을 통제하는 마스터 서버로 구성된다. 게다가 클러스터의 각 노드에는 데이터노드가 하나씩 존재하고, 이 데이터 노드는 실행될 때마다 노드에 추가되는 스토리지를 관리한다.

- HDFS는 네임스페이스를 공개하여서 유저 데이터가 파일에 저장되는 것을 허락한다. 내부적으로 하나의 파일은 하나 이상의 블록으로 나뉘어 있고, 이 블록들은 데이터노드들에 저장되어 있다. 네임노드는 파일과 디렉터리의 읽기(open), 닫기(close), 이름 바꾸기(rename) 등, 파일시스템의 네임스페이스의 여러 기능을 수행한다. 또한, 데이터 노드와 블록들의 맵핑을 결정한다. 데이터 노드는 파일시스템의 클라이언트가 요구하는 읽기(read), 쓰기(write) 기능들을 담당한다. 또한 데이터 노드는 네임노드에서의 생성, 삭제, 복제 등과 같은 기능도 수행한다.

 

보조네임노드(Secondary name node)

 

- 네임노드가 메타데이타를 메모리에 담고 처리하는데 만약 서버가 리부팅되면 사라질 수 있다(Hadoop의 단점). 그래서 HDFS는 이러한 점때문에 editslog fsimage라는 두 개의 파일을 생성한다. 그런데 만약 editslog가 커지면 fsimage를 만드는데 시간이 많이 소요되게 된다.

 

- editslog는 HDFS의 모든 변경 이력을 저장하는 파일이다.

- simage는 메모리에 저장된 메타데이터의 파일 시스템 이미지를 저장한 파일이다.

 

이러한 문제를 해결하기 위해서 보조네임노드(Secondary Name Node)가 있다. 보조네임노드는 fsimage를 갱신해준다. 이러한 작업을 체크포인트라고 한다. 그래서 보조네임노드를 체크포인팅 서버라고도 한다. 보조네임노드는 네임노드의 백업이 아니고 단순히 fsimage를 줄여주는 역할만 한다. fsimage가 너무 커서 네임노드가 메모리에 로딩되지 못하는 경우를 예방하기 위해 사용되는 것이다.

반응형

댓글