개요 - 1
In memory 기반의 고속 데이터 처리엔진, 기존 하둡(Hadoop)이 MR(Map &
Reduce) 작업을 디스크 기반으로 수행하기에 느리 부분을 메모리 기반으로 작
업함으로서 성능을 극대화
범용적인 분산 환경의 고성능 클러스터링 플랫폼
자바, 파이썬, 스칼라, R등을 기반으로 구동
MR(Map & Reduce), 스트리밍 기반의 데이터 처리, 하둡의 하이브(Hive)처럼
SQL기반 데이터 처리, 머신 러닝 라이브러리, 유틸리티 등을 제공
3.
개요 - 2
기존 데이터 분석 방식
데이터 추출(ETL)
하둡 Map & Reduce를 통한 데이터 필터링, 정재
OLAP을 통한 리포팅, 통계분석
기본 데이터 분석을 위해서는 여러 플랫폼이 필요했지만 아파치 스파크는 통
합해서 지원, 단일시스템에서 배치/스트리밍 처리, SQL/머신러닝, 그래프 프
로세싱등을 지원.
데이터 저장 및 활용을 위한 HDFS, 카산드라, HBase, 아마존 S3등 지원
Apache Spark는 Scala를 기반으로 구현되었지만 자바, 파이썬 등의 언어를 지
원하며 관련 SDK를 포함하고 있다.
4.
개요 - 3
스톰(Storm)과 유사한 실시간 데이터 프로세싱을 지원.
하둡의 클러스터 위에서도 실행 가능하며 카산드라와 같은 하둡의 데이터 소
스에 접근 가능
아파치 스파크의 잠재적인 경쟁자로는 구글의 “빔”이 있다.빔은 실시간, 배치
등의 데이터 처리 엔진을 단일 프로그래밍 모델로 처리할 수 있게 하는 프레임
워크다.
스파크 구성 요소– 인프라 계층(STANDALONE
SCHEDULER, YARN, MESOS)
스파크가 독립적으로 기동할 수 있는 Standalone Scheduler
하둡의 종합 플랫폼인 YARN위에서도 기동 가능
Docker 가상화 플랫폼인 Mesos 위에서 기동
7.
스파크 구성 요소– SPARK LIBRARY(1)
Spark SQL : 구조적 데이터(Structured Data)와 반구조적(SemiStructured
Data) 를 다룰 수 있으며 다양한 데이터 유형 처리 가능, SQL 을 사용한 쿼리,
RDD 와 SQL Table 을 Join 하는 기능을 포함하여 기존 코드(spark-core)와 통
합이 가능하다.
Spark Streaming : Real-Time으로 데이터를 받아 특정 작업을 고성능적으로
처리,스스로 오류를 발견할 수 있다. RDD 에 제공되는 Operation 과 시간 기반
의 Operation 을 제공한다.
8.
스파크 구성 요소– SPARK LIBRARY(2)
Spark SQL : 구조적 데이터(Structured Data)와 반구조적(SemiStructured
Data) 를 다룰 수 있으며 다양한 데이터 유형 처리 가능, SQL 을 사용한 쿼리,
RDD 와 SQL Table 을 Join 하는 기능을 포함하여 기존 코드(spark-core)와 통
합이 가능하다.
Spark Streaming : Real-Time으로 데이터를 받아 특정 작업을 고성능적으로
처리,스스로 오류를 발견할 수 있다. RDD 에 제공되는 Operation 과 시간 기반
의 Operation 을 제공한다.
9.
스파크 구성 요소– SPARK LIBRARY(4)
Mlib: 머신러닝 라이브러리, 머신러닝을 위해 만들어짐. 분류, 회귀, 클러스터
링, 필터링과 같은 일반적인 머신러닝 알고리즘과 함께 특징을 추출, 변형, 차
원 감소 및 선택을 위한 도구, ML 파이프라인 구축과 평가, 튜닝을 위한 도구
를 제공하며 알고리즘과 모델 및 파이프라인의 저장/로드, 데이터 처리, 선형
대수학과 통계학 수행을 위한 유틸리티도 포함되어 있다.
GraphX: Scala, Java 그리고 Python을 위한 High Level API를 제공하는
DataFrame에 기반한 Graph를 제공해주는 Apache Spark를 위한 패키지