728x90
아파치 스파크 (Apache Spark) 란
통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 '라이브러리'들의 집합이다.
1. 컴퓨팅 엔진
여기서 스파크가 '컴퓨팅 엔진' 이라는 의미는 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행하며 스파크가 직접 빅데이터들을 영구적으로 저장하는 저장소의 역할은 하지 않는다는 의미로 이해할 수 있다.
이러한 점은 Apache Hadoop 과 같은 기존의 빅데이터 플랫폼과의 차별점이 된다. Hadoop의 경우 하둡 파일 시스템과 컴퓨팅 시스템인 맵리듀스라는 두 가지 시스템이 매우 밀접하게 얽혀있어서 둘 중 하나만 단독으로 사용하기 어렵다. 반면, Spark의 경우에는 연산 작업을 수행하는 노드와 저장소를 별도로 구성할 수 있다는 장점이 있다.
2. 라이브러리
스파크는 다양한 라이브러리를 제공한다. SQL, spark SQL, MLlib, GraphX 등이 있다.
스파크의 등장 배경
흥미롭게도 스파크의 등장 배경은 하드웨어의 성능과 관련이 있다. 기존에는 빅데이터의 처리를 프로세서의 성능 향상에 의존했으나 2005년에 하드웨어의 성능향상이 멈추었다. 대신 병렬처리로 어플리케이션의 성능 향상을 이루었고, 병렬처리에는 스파크와 같은 엔진이 필요하게 되었다.
또한 데이터 수집 비용은 저렴해졌으나, 그 데이터의 양이 거대해져서 클러스터에서 처리해야 하는 문제가 발생했다. 이를 해결하기 위해 스파크가 등장했다.
728x90
'Data Engineering > Apache Spark' 카테고리의 다른 글
[Spark] 스파크 완벽 가이드 Ch09. 데이터 소스 (0) | 2023.11.27 |
---|---|
[Spark] 스파크 완벽 가이드 04 - Ch 04. 구조적 API 개요 (0) | 2023.11.07 |
[Spark] 스파크 완벽 가이드 (3) - Ch.03 스파크 기능 둘러보기 (Dataset, Structured Streaming) (0) | 2023.11.02 |
[Spark] 스파크 완벽 가이드 (2) - Ch 02. 스파크 간단히 살펴보기 (1) | 2023.10.29 |
[Spark] Spark RDD(Resilient Distributed Data) ? (0) | 2023.05.23 |