아파치 스파크는 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리

데이터에 관심있는 여러 개발자와 데이터 과학자에게 표준

네가지 언어 지원(파이썬, 스칼라, 자바, R) SQL, 스트리밍, 머신러닝에 이르기까지 넓은 범위의 라이브러리 제공

아파치 스파크의 철학

통합

간단한 데이터 읽기에서부터 sql 처리, 머신러닝 그리고 스트림 처리에 이르기 까지 다양한 데이터 분석 작업을 같은 연산엔진과 일관성 있는 API로 수행할 수 있다.

스파크가 발표되기 전에는 통합 엔진을 제공하는 병렬 데이터 처리용 오픈소스가 없었음

컴퓨팅 엔진

스파크는 통합이라는 관점을 중시하면서 기능의 범위를 컴퓨팅 엔진으로 제한

특정 저장소 시스템을 선호하지 않고 사용자 API는 서로 다른 저장소 시스템을 매우 유사하게 볼 수 있도록 설계되어있음

라이브러리

스파크는 엔진에서 제공하는 표준 라이브러리와 오픈소스 커뮤니티에서 서드파티 패키지 형태로 제공하는 다양한 외부 라이브러리를 지원

스파크 등장 배경

역사적으로 컴퓨터는 프로세서의 성능 향상에 힘입어 해마다 빨라졌으나 이젠 발열문제로 같은 속도로 동작하는 병렬 cpu 코어를 더 많이 추가하는 방향으로 선회

데이터 수집비용은 극히 저렴해졌으나 데이터는 클러스터에서 처리해야 할만큼 거대해졌음

이에 따라 새로운 프로그래밍 모델이 필요해졌으며 이런 문제를 해결하기 위해 아파치 스파크가 탄생

스파크의 역사