스파크 (Apache Spark)

I. 범용 분산 플랫폼, 스파크

가. 스파크의 개념

디스크 I/O를 효율화하고 데이터 분석 작업에 용이한 인메모리 컴퓨팅 기반 데이터 분산처리 시스템

나. 스파크의 특징

HDFS 사용– 하둡의 파일시스템 기반 동작
직관적 이해– 스칼라 기반 최소화 코드로 작성
RDD– RDD 단위로 데이터 연산을 수행

 

II. 스파크의 구조 및 구성요소

가. 스파크의 구조

– 스파크는 일괄처리 방식 뿐 아니라 포괄적 분석 기반을 목표로 복수의 프레임워크로 구성

나. 스파크의 구성 요소

구분구성 요소설명
구성
요소
Spark Core– 하둡과 같은 일괄처리 담당하며 다른 프레임워크의 기반
SQL– 데이터웨어하우스 처럼 SQL에서 인터랙피트 분석 가능
Streaming– IoT 센서 데이터나 SNS 데이터 등 실시간으로 스트리밍 처리
자원 스케줄링– 자원 스케줄링 기능(YARN) 사용
– 스케줄링 위해 메소스 계층배치
요소
기술
RDD (Resilient Distribute Dataset)– 데이터 내장애성 보유 구조
– 데이터 집합의 추상적객체 개념
RDD 연산자– RDD에 대한 병렬 데이터 처리 연산 지원 연산자 제공
인터랙션– 함수형 프로그래밍이 가능하도록 Scala를 사용하여 쉘 사용
작업 스케줄링– RDD가 변화되는 과정을 그래프로 표현하고 스케줄링

 

III. 스파크와 스톰 비교

항목스파크스톰
데이터 처리– 일괄 처리 방식– 실시간 스트리밍 방식
업데이트– 파일 or 테이블– 스트림 (튜플)
컴퓨팅 환경– 인메모리 기반– 인메모리 기반
반복 작업– 강력한 성능– 일반적 수준
프로그램언어– Scala– Clojure
사용 환경– 반복 & 많은 연산– 응답시간↓, 다양질의

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^