Apache Spark 는 대규모 데이터를 분산 처리하는 범용 엔진이다. 배치 · SQL · 스트리밍 · 머신러닝을 한 런타임에서 다룬다.
MapReduce 와 달리 중간 결과를 메모리에 두고, 부족하면 디스크로 흘린다(spill). 그래서 Trino 같은 인메모리 전용 엔진보다 대화형 질의는 느리지만, 메모리를 넘기는 큰 조인과 긴 ETL 에서는 실패하지 않고 끝까지 간다. UC 버클리 AMPLab 에서 시작해 2013년 Apache 로 넘어갔다.
| 계열 | 상태 | 비고 |
|---|---|---|
| 4.2 | 현행. 최신 4.2.0[1] | |
| 4.1 · 4.0 | 유지보수 | |
| 3.5 | 장기 사용 계열 | Cloudera 등 배포판이 오래 쓴다 |
4.x 는 Java 17 이상과 Scala 2.13 을 쓴다. Python API(PySpark)는 별도 휠로 배포된다.
| 구성 | 역할 |
|---|---|
| Driver | 애플리케이션의 본체. DAG 를 만들고 태스크를 배분한다 |
| Executor | 태스크를 실행하고 데이터를 캐시한다 |
| Cluster manager | 자원 배분. YARN · Kubernetes · Standalone |
| Catalyst | 질의 최적화기. 규칙 기반 + 비용 기반 |
| Tungsten | 실행 엔진. 코드 생성과 off-heap 메모리 관리 |
모듈은 Spark SQL · Structured Streaming · MLlib · GraphX 로 나뉜다.
| 모드 | 드라이버 위치 |
|---|---|
client |
제출한 곳에서 실행. 대화형 · 개발용 |
cluster |
클러스터 안에서 실행. 운영 배치용 |
current_user() 는 Spark 3.2 부터 내장된 함수다. 그 이전 버전에는 존재하지 않으므로 등록되지 않은 함수로 처리된다.…pyspark 를 치면 다음처럼 죽는다.INFO 부터 찍어서 실제 출력이 로그에 묻힌다. 방법이 세 가지 있고 적용 시점이 다르다.최신 버전 4.2.0 — 2026-09-20 확인. https://spark.apache.org/downloads.html ↩︎