본문 바로가기
IT

Apache Spark란?

by ¢Å‰¤㏄ 2021. 11. 8.

■ Apache Spark란?

빅 데이터 워크로드에 주로 사용되는 오픈 소스 분산 처리 시스템

빠른 성능을 위해 인 메모리 캐싱과 최적화된 실행을 사용하며, 일반 배치 처리, 스트리밍 분석, 기계 학습, 그래프 데이터베이스 및 임시 쿼리를 지원

 

■ 장점 & 기능

①  빠른 성능

방향성 비순환 그래프(DAG) 실행 엔진을 사용

입력, 출력 및 중간 데이터를 인 메모리에 RDD(Resilient Distributed Dataset)로 저장하므로, I/O 비용 없이 반복 또는 대화형 워크로드를 빠르게 처리하고 성능을 높일 수 있음

 

② 다양한 workflow 생성

기계 학습(MLlib), 스트림 처리(Spark Streaming) 및 그래프 처리(GraphX)용 애플리케이션을 구축하는 데 도움이 되는 몇 가지 라이브러리가 포함

 

③ 다양한 API 제공

기본적으로 Scala, JAVA, Pyhon 등의 다양한 언어 기반의 고수준 API를 사용 가능

④ 오픈소스

Apache 프로젝트 이기에 무료로 이 강력한 기능을 사용할 수 있다

 

■ 단점

①  메모리 기반 솔루션

In-Memory 솔루션으로 높은 메모리 사양이 필요

 

② 반복처리에 능함

연속적인 처리에 유리하다. 일회성의 작업의 경우 장점 없음

 

■ RDD란?

RDD(Resilient Distributed Dataset) - 탄력적 분산 데이터 집합이라 불리며, 스파크의 가장 중요한 핵심 요소이면서 스파크 클러스터 전역에 분산되고 변경되지 않는 불변성의 객체를 말한다.

 

■ Spark SQL

처음에는 샤크(Shark)라는 네임으로 개발되었다가 Spark SQL로 명명되었고, R과 파이썬의 판다스(Pandas)에서 사용되는 데이터프레임 구조를 처리 할 수 있는 구조적 데이터 처리에 중점


Spark Streaming

스트림 데이터를 연속적인 마이크로배치 형태로 쪼개어 처리하는 방식으로 사용한다. 현재는 구조적 스트리밍(Structured Streaming)이 갖는 더 높은 수준의 API는 개발자가 무한 스트리밍 데이터프레임을 만들 수 있게 사용

 

Spark Mllib

Spark에서 지원하는 머신러닝 라이브러리이며, Spark MLlib과 Spark ML의 차이점은 MLlib은 RDD기반으로 낮은 수준의 스파크 머신러닝 환경이고, Spark ML은 구조적 방식(DataFrame)으로 높은 수준의 스파크 머신러닝 환경

 

 

'IT' 카테고리의 다른 글

Git 사용법  (0) 2021.11.12
Git 이란  (0) 2021.11.12
Cookie vs Local Storage vs Session Storage  (0) 2021.11.05
ELK stack이란?  (0) 2021.11.05
Druid (S3 direct 연동)  (0) 2021.11.05

댓글