■ 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 |
댓글