20

Spark의 비밀: 분산 처리

Day 1: pandas로 10GB 처리하다 포기했다

학습 목표

분산 처리의 개념을 이해한다 Spark의 핵심 철학을 파악한다

pandas vs Spark: 근본적인 차이

pandas (단일 머신):

에디터 로딩 중...

Spark (분산 처리):

에디터 로딩 중...

핵심 아이디어: 혼자 못하면 여럿이 나눠서 하자.


Spark의 3가지 핵심 원칙

1. 데이터를 나눈다 (Partitioning)

에디터 로딩 중...

각 파티션은 독립적으로 처리된다. 5개 서버가 있으면 5개가 동시에 작업. 10GB가 2GB씩 5번이 되는 것.


2. 메모리에서 처리한다 (In-Memory)

Hadoop MapReduce (Spark 이전 세대):

에디터 로딩 중...

Spark:

에디터 로딩 중...

디스크 I/O를 최소화해서 100배 빠르다.


3. 필요할 때만 실행한다 (Lazy Evaluation)

에디터 로딩 중...

왜 이렇게 할까? → 전체 계획을 보고 최적화할 수 있다. → 불필요한 작업을 생략할 수 있다.

예: 100개 컬럼 중 2개만 쓴다면? → 처음부터 2개 컬럼만 읽는다.


Spark vs pandas 속도 비교

데이터 크기pandasSpark (4코어)Spark (20코어)
1GB2분1분30초
10GBMemoryError8분2분
100GB불가능80분15분
1TB불가능가능150분

코어를 늘리면 속도가 비례해서 빨라진다. 이게 분산 처리의 힘이다.