[데이터 저장] 빅데이터 저장시스템 3(HDFS, GFS, NoSQL)

데이터 저장은 수집된 데이터(데이터 유형별 수집 기술 활용)를 변환, 적재 과정을 거친 뒤 진행되며, ‘빅데이터 저장시스템’을 활용해 대용량 데이터를 저장 및 관리하고, 사용자에게 데이터 제공의 신뢰성과 가용성을 보장합니다. 이러한 빅데이터 저장방식은 크게 파일 (1) 파일 시스템, (2) 데이터베이스가 있습니다.

1. 데이터 저장방식(1) – 파일 시스템

파일 시스템 저장방식은 빅데이터를 확장 가능한 분산 파일 형태로 저장합니다. 대표적인 것이 하둡 분산 파일 시스템(HDFS), 구글 파일 시스템(GFS)입니다.

여기서 하둡(Hadoop)은 분산 데이터 처리기술인 맵리듀스(MapReduce)와 분산 파일 시스템인 HDFS로 구성된 플랫폼 기술입니다. 개별 서버에서 진행되는 병렬처리 결과를 하나로 묶어 저장하고 처리하기 때문에 시스템 과부하를 줄일 수 있으며, 자바 기반 오픈소스라 무료 사용이 가능합니다.

하둡의 특징은 일단 연산, 저장 기능이 추가된 서버 대수에 비례해 증가하여 용량 확장이 가능합니다(대수 제한 없음). 또한 HDFS에 저장되는 데이터는 3중 복제가 되고 각기 다른 물리서버에 저장되기 때문에 데이터 손상 및 유실을 방지할 수 있습니다. 마지막으로 시스템 수준에서 발생되는 장애는 자동적으로 복구되고, 성능 이슈에 대해서도 하둡 내부적으로 최적화 해주기 때문에 비즈니스 로직에만 집중이 가능합니다.

1) 하둡 분산 파일 시스템

하둡 분산 파일 시스템(HDFS, Hadoop Distributed File System)은 대용량 파일을 특정 크기의 블록 단위로 나뉘어 여러 데이터 노드에 분산하여 저장합니다. 블록들은 모드 크기가 동일합니다(마지막 블록 제외, 기본 크기 64MB).

HDFS는 1개의 마스터(Master)와 여러 개의 슬레이브(Slave)로 구성됩니다. 마스터노드(또는 네임노드)는 슬레이브를 관리하는 메타데이터, 모니터링 시스템을 운영하며, 슬레이브노드(또는 데이터노드)는 블록을 분산 처리 합니다.

HDFS 외에도 하둡을 구성하는 핵심 구성요소로 맵리듀스(MapReduce)가 있습니다. 맵리듀스는 구글인 처음으로 고안하여 상용화한 ‘대규모 분산 병렬 처리 기술’입니다. 맵리듀스는 (1) 데이터 소스를 입력(Input)하면, (2) 이를 여러 개의 조각으로 나누고(Splitting), (3) 문서 조각에 포함된 단어와 그 빈도수를 계산, 기록합니다(Mapping). 이후, (4) 각 조각별로 계산된 결과를 바탕으로 같은 단어를 모으고(Shuffling), (5) 단어별 출연 빈도수를 합한 후(Reducing), (6) 최종 합산 결과를 출력합니다.

[관련 참고 영상] 빅데이터 저장과 처리(하둡이란)

2) 구글 파일 시스템

구글 파일 시스템(GFS. Google File System)은 핵심 데이터 스토리지와 구글 검색 엔진을 최적화 하기 위한 분산 파일 시스템이이며, 구글이 자사 사용 목적으로 개발했습니다. 본 시스템은 크게 (1) 마스터(Master, 전체 관리 및 통제), (2) 청크 서버(Chunk Server, 하드디스크의 입출력 처리), (3) 클라이언트(파일을 읽고 쓰는 동작을 요청)로 구성됩니다. GFS 기술의 상당 부분은 상기 HDFS에 적용되었습니다.

2. 데이터 저장방식(2) – 데이터베이스

데이터베이스 저장방식에는 전통적인 관계형 데이터베이스 시스템, NoSQL 데이터베이스 시스템이 있습니다.

1) NoSQL

NoSQL은 전통적인 관계형 데이터베이스 시스템과 비교했을 때, 보다 유연한 데이터 저장 및 검색 매커니즘을 제공합니다. 아울러 대용량 데이터 저장 및 처리 측면에서 수평적 확장성, 데이터 복제, 간편한 API 제공, 일관성 보장 등의 장점을 가지고 있습니다.

NoSQL의 기술적 특성은 크게 4가지로 정리됩니다.

  • 無스키마 : 데이터를 모델링 하는 고정된 데이터 스키마 없이 키 값을 이용해 데이터 저장 및 접근 가능
  • 탄력성 : 시스템 일부 장애 상태에도 시스템 접근이 가능, 응용 시스템의 다운타임 없이 데이터 생성 및 갱신이 가능
  • 질의 가능 : 대량 규모의 시스템에서도 데이터 특성에 맞은 검색, 처리가 가능한 질의 언어, 처리 기술, API 제공
  • 캐싱 : 개발, 운영에 있어 투명하고 일관되게 적용할 수 있는 메모리 기반 캐싱 기술 적용

NoSQL은 데이터 저장 방식에 따라서, (1) 키-값 구조, (2) 컬럼기반 구조, (3) 문서기반 구조로 구분됩니다.

  • 키-값 구조 : 키와 그에 해당하는 값으로 저장, 단순한 데이터 모델 기반으로 확장성이 좋으며, 질의 응답시간이 빠름
  • 열기반(컬럼기반) 구조 : 데이터를 컬럼기반으로 저장, 연관된 데이터 중심으로 읽는데 유리한 구조
  • 문서기반 구조 : 문서 형식의 정보를 저장, 검색, 관리 가능, 문서마다 다른 스키마가 있음

[관련 참고 영상] 빅데이터 저장과 처리(NoSQL)

답글 남기기