핵심 인사이트 (3줄 요약)

  1. 본질: Spark 실행 구조는 Driver, Cluster Manager, Executor가 역할을 나눠 분산 작업을 수행하는 구조다.
  2. 가치: Job → Stage → Task 흐름을 이해하면 Spark 성능 문제와 자원 할당 문제를 설명하기 쉬워진다.
  3. 판단: Spark는 계산 로직뿐 아니라 실행 계획, Shuffle, 실패 복구까지 함께 봐야 한다.

Ⅰ. 개요 및 필요성

Spark는 큰 데이터를 빠르게 처리하기 위해 분산 실행 구조를 사용한다. 단일 프로세스가 아니라 여러 Executor에 작업을 나눠 보내기 때문에, 실행 구조를 이해해야 병목을 찾을 수 있다.

Driver가 계획을 세우고, Cluster Manager가 자원을 배분하고, Executor가 실제 계산을 수행한다.

  • 📢 섹션 요약 비유: 감독이 계획을 짜고, 현장이 자원을 받고, 작업자들이 실제로 일하는 공사 현장이다.

Ⅱ. 아키텍처 및 핵심 원리

Driver
  ↓
DAG Scheduler
  ↓
Task Scheduler
  ↓
Cluster Manager
  ↓
Executors
구성 요소역할
Driver애플리케이션 제어와 작업 계획
Cluster Manager자원 할당
ExecutorTask 실행
DAG SchedulerStage 단위 분할
Shuffle데이터 재분배

Spark의 기본 단위는 Job, Stage, Task다. Job은 사용자가 요청한 작업 전체이고, Stage는 Shuffle 경계로 나뉜 부분, Task는 각 Executor에서 실행되는 세부 작업이다.

  • 📢 섹션 요약 비유: 큰 일(Job)을 공정(Stage)으로 나누고, 공정 안의 작은 작업(Task)을 여러 작업자가 처리하는 셈이다.

Ⅲ. 비교 및 연결

구분DriverCluster ManagerExecutor
역할제어/계획자원 배분계산 수행
위치애플리케이션 측클러스터 측워커 노드
병목계획 과부하자원 부족메모리/Shuffle
개념의미
Job사용자가 제출한 논리 작업
StageShuffle 경계로 나뉜 실행 단위
TaskExecutor에 배분되는 최소 단위

Spark 구조를 이해하면 왜 Shuffle이 비싼지, 왜 Driver 장애가 치명적인지, 왜 Executor 메모리 튜닝이 중요한지 설명할 수 있다.

  • 📢 섹션 요약 비유: 설계도, 자재 창고, 작업반이 서로 다른 역할을 맡아야 건물이 완성된다.

Ⅳ. 실무 적용 및 기술사 판단

체크리스트

  1. Driver와 Executor 역할을 구분하는가?
  2. Job/Stage/Task의 차이를 설명할 수 있는가?
  3. Shuffle 비용과 데이터 스큐를 고려하는가?
  4. Cluster Manager 종류(YARN, K8s, Standalone)를 이해하는가?
  5. 메모리와 병렬도 설정이 작업 특성과 맞는가?

안티패턴

  • Driver에 과도한 계산을 몰아넣는 설계
  • Shuffle 비용을 무시하고 조인만 남발하는 설계
  • Executor 수만 늘리고 데이터 분배를 안 보는 설계
  • 장애 복구와 재시도를 고려하지 않는 설계

기술사 관점에서는 Spark를 "라이브러리"가 아니라 "분산 실행 시스템"으로 봐야 한다. 실행 구조가 성능과 안정성의 핵심이다.

  • 📢 섹션 요약 비유: 지휘자만 잘해도 안 되고, 악단과 무대 배치가 함께 맞아야 공연이 잘 된다.

Ⅴ. 기대효과 및 결론

Spark 실행 구조를 이해하면 분산 처리의 병목과 장애 지점을 쉽게 찾을 수 있다. 결국 성능 튜닝은 구조를 읽는 데서 시작한다.

결론적으로 Driver는 계획, Cluster Manager는 자원, Executor는 계산을 맡는다.

  • 📢 섹션 요약 비유: 감독, 배급 담당, 작업자가 각자 맡은 일을 해야 전체가 빨라진다.

관련 개념 맵

Driver
  ↓
Job / Stage / Task
  ↓
Cluster Manager
  ↓
Executors

관련 키워드 및 발전 흐름도

Spark Job
  ↓
DAG Scheduling
  ↓
Executor Execution
  ↓
Shuffle / Recovery

어린이를 위한 3줄 비유 설명

일을 크게 나누면 더 빨리 끝낼 수 있어요.
누군가는 계획을 세우고, 누군가는 자원을 나누고, 누군가는 실제로 일해요.
Spark는 그런 식으로 많은 데이터를 처리해요.