본문 바로가기
기타/[책] 빅데이터를 지탱하는 기술

[독서] 분산 처리 프레임워크, 빅데이터를 지탱하는 기술

by HelloJudy 2022. 4. 13.

3장. 빅데이터의 분산처리

3-1. 대규모 분산 처리의 프레임워크

 

 

구조화 데이터와 비구조화 데이터

  1.  구조화된 데이터 : 스키마가 명확하게 정의된 데이터 (ex. 테이블)
  2.  비구조화 데이터 : 스키마가 없는 데이터

 

 

> 스키마리스 데이터

기본 서식은 있지만, 스키마 정의 안 됨.

 

> 데이터 구조화의 파이프라인

테이블 형식으로 열 지향 스토리지 장기 보존

(그림3.2) 출처: 빅데이터를 지탱하는 기술

 

구조화 데이터 중 시간에 따라 증가하는 데이터 -> 팩트 테이블

 

 

> 열 지향 스토리지의 작성

분산 스토리지 상에 작성해 효율적으로 데이터를 집계
  • MPP 데이터베이스
  • Hadoop : 직접 열 지향 스토리지 형식, 쿼리 엔진 선택

 


비구조화 데이터 -> 열 지향 스토리지 : 많은 리소스 소비

그래서

Hadoop, Spark 등 분산 처리 프레임워크 필요


 

Hadoop

분산 데이터 처리의 공통 플랫폼

: 분산 시스템을 구성하는 다수의 소프트웨어로 이루어진 집합체

 

 

> 분산 시스템의 구성 요소

 

< Hadoop의 기본 구성 요소 >

  1. 분산 파일 시스템: HDFS
  2. 리소스 관리자: YARN
  3. 분산 데이터 처리: MapReduce

 

분산 시스템은 Hadoop 일부만 사용하거나 혹은 전혀 이용하지 않는 구성도 있다.

 

 

> 분산 파일 시스템과 리소스 관리자

  • HDFS: 분산 시스템의 스토리지를 관리하여 데이터가 항상 여러 컴퓨터에 복사되도록 한다.
  • YARN: CPU와 메모리를 관리하고 여유가 있는 컴퓨터에서 프로그램을 실행한다.

 

> 분산 데이터  처리 및 쿼리 엔진

 

MapReduce는 원래 대량의 데이터를 처리하기 위한 시스템이다.

따라서, 오버헤드가 너무 크기 때문에 몇 초 안에 끝나는 쿼리 실행에 부적합하다.

 

 

> 대화형 쿼리 엔진

Impala와 Presto

 

처음부터 대화형의 쿼리 실행만 전문으로 하는 쿼리 엔진

 

 

Spark

인 메모리 형의 고속 데이터 처리

 

특징

  • 대량의 메모리르 활용하여 고속화 실현
  • 과거) 메모리 양 적음 -> MapReduce는 처리 대부분을 디스크 읽고 쓰기에 사용
  • 현재) 메모리 양 증가 -> 가능한 한 많은 데이터를 메모리상에 올린 상태로 두어 디스크에 아무것도 기록하지 않는다.

 

> MapReduce 대체

Spark 입지
  • Spark에서 Hadoop의 HDFS, YARN 등 그대로 사용
  • Hadoop 사용하지 않고 Amazon S3를 이용하거나 카산드라 가능

 

SQL 쿼리를 실행하기 위한 'Spark SQL'과 스트림 처리를 수행하기 위한 'Spark Streaming' 이라는 기능이 처음부터 포함.

 

Spark 실행 과정

 

 


출처: 니시다 케이스케, 「빅데이터를 지탱하는 기술」, 제이펍, 2018, p89~100

 

반응형

댓글