대규모 데이터를 빠르고 효율적으로 처리하려는 노력은 계속되어 왔습니다.
기의 고비용 병렬 처리 시스템부터 오픈소스 분산 처리 프레임워크까지, Spark가 주목받게 된 과정을 단계별로 살펴보겠습니다.
1. MPP (Massively Parallel Processing)
MPP는 ‘대규모 병렬 처리’를 의미합니다. 수많은 독립적인 하드웨어(노드)가 각자의 데이터베이스를 운영하며 병렬적으로 데이터를 처리하는 구조입니다.
- 여러 대의 서버에서 병렬로 작업 처리
- 데이터를 분산 저장하여 병목을 줄임
- 고성능 시스템이지만 비용이 매우 높음
MPP는 Oracle Exadata, Teradata, IBM Netezza 같은 대형 벤더의 솔루션으로 잘 알려져 있습니다. 병렬성과 처리 성능이 뛰어났지만, 장비 도입과 라이선스 비용이 엄청나기 때문에 일반적인 기업에겐 진입 장벽이 매우 높았습니다.
이 한계는 결국 비용 효율적인 대안에 대한 수요로 이어졌죠.
2. Hadoop 생태계의 등장: HDFS + MapReduce
Google의 논문을 바탕으로 시작된 Hadoop은 오픈 소스 기반의 HDFS(Hadoop File System)와 MapReduce(분산 처리 엔진)를 중심으로 대량 데이터 처리를 가능하게 했습니다.
- 대용량 데이터를 저렴한 범용 서버에 분산 저장 가능
- Map → Shuffle → Reduce 형태의 단계적 처리
- HDFS로 데이터의 내결함성(fault tolerance) 확보
Hadoop은 MPP의 고비용 한계를 해결하며 ‘오픈소스 기반 분산 처리’의 문을 열었습니다.
하지만 MapReduce는 단점도 있었는데요. 디스크 I/O 중심의 처리 방식으로 인해 성능이 느리고, 복잡한 로직을 구현하기엔 개발 생산성이 낮았어요.
매 단계마다 디스크에 데이터를 쓰는 구조 때문에 실시간 분석에는 부적합했죠.
3. Spark의 등장: In-memory 기반의 고속 처리 솔루션
Spark는 Hadoop 이후 등장한 차세대 분산 처리 프레임워크로, 메모리 기반 처리를 통해 속도와 유연성을 크게 개선했습니다.
- RDD, DataFrame, SQL 등 다양한 추상화 레벨 제공
- DAG(Directed Acyclic Graph) 기반의 실행 최적화
- In-memory 연산 중심 → 디스크 I/O 최소화
- MapReduce보다 수십 배 빠른 성능
- 오픈소스 기반으로 라이선스 비용 無
- MLlib, Spark Streaming, GraphX 등 다양한 확장 모듈 제공
- 데이터 웨어하우스(DW) 영역까지 영향력 확대 중
Spark의 가장 큰 강점은 바로 메모리 중심의 처리 방식입니다.
반복 연산이 많은 머신러닝이나 그래프 처리 등에서 성능이 압도적으로 좋습니다. 또한, RDD나 DataFrame을 통해 복잡한 로직을 훨씬 간단하고 효율적으로 표현할 수 있어 개발자 친화적인 환경을 제공합니다.
Spark는 Hadoop의 한계를 극복하면서도, HDFS 등 기존 Hadoop 생태계와도 잘 통합되어 자연스럽게 업계 표준으로 자리 잡게 되었습니다.
'Spark' 카테고리의 다른 글
Pandas DataFrame vs Spark DataFrame (0) | 2025.04.18 |
---|