본문 바로가기
IT개발/Hadoop, Spark

[Hadoop & Spark] Hadoop과 Spark의 차이(기술적, 아키텍처)

by Thompson 2025. 4. 16.
728x90
반응형

 

기술적 측면
데이터 처리 방식
종류 Hadoop Spark
저장 위치 디스크 (HDD/SSD) 메모리 (RAM)
처리 속도 비교적 느림 매우 빠름(10배)
장애 복구 매우 강함 (자동 복구) 상대적으로 약함
실시간 처리 불가능 가능

 

Hadoop(안정성에 집중)
특징
디스크 기반 저장/처리 시스템
"무조건 실패하지 않게"가 데이터를 작은 조각으로 나누어 여러 컴퓨터에 저장
한 번에 한 가지 일만 하지만 확실히 처리
Spark(속도에 집중)
특징
메모리 기반 처리 시스템
데이터를 메모리에 올려 놓고 반복적으로 처리동시에 여러 작업을 빠르게 수행

 

아키텍처 비교 : 근본적인 설계 차이

HADOOP

  • Hadoop은 "분산 스토리지(HDFS)"와 "분산 처리(MapReduce)"로 구성된 2계층 아키텍처입니다.
  • 배치 처리 중심 : 데이터를 "모아서 한꺼번"에 처리
  • 디스크 I/O 의존성 : 매 단계마다 디스크에 "읽기/쓰기 "발생
  • 명시적 병렬화 : 개발자가 직접 "분할 방식"을 지정

SPARK

  • Spark는 "Resilient Distributed Dataset(RDD)"라는 추상화된 데이터 모델을 기반으로 합니다.
  • 메모리 중심 처리 : 데이터를 가능한 한 "메모리"에 유지
  • DAG 실행 엔진 : 작업을 Directed Acyclic Graph로 최적화
  • 지연 실행 : 실제 연산은 액션 발생 시까지 지연됨
//DAG 실행 엔진
1. DAG = 방향이 있고 순환하지 않는 그래프.
2. 작업들을 노드(Node), 작업 간의 흐름을 선(Edge)으로 표현한 구조.
3. Spark는 모든 작업을 DAG 형태로 정리해서, 최적의 실행 순서로 바꾼 후 실행.

// 지연 실행
Spark에서는 명령을 쓰는 즉시 실행하지 않고, 최종적으로 ‘결과를 달라’는 액션이 있을 때만 진짜로 실행하기에 중간 작업들을 모아서 한 번에 최적화하고 실행.

HADOOP의 동작 과정

 

  1. 데이터 읽기 – 디스크에서 데이터를 읽음.
  2. Map 처리 – 데이터를 나눠서 처리함.
  3. 결과 저장 – 다시 디스크에 저장.
  4. Shuffle – Reduce 전에 필요한 데이터 정렬/이동.
  5. 다시 디스크에서 읽기 – Shuffle된 데이터를 다시 디스크에서 읽음.
  6. Reduce 처리 – 결과들을 모아서 처리.
  7. 최종 결과 저장 – 또 디스크에 저장.

SPARK의 동작 과정

 

  1. 데이터 로드 – 데이터를 메모리로 불러옴.
  2. 변환 연산 (map, filter) – 메모리 안에서 여러 번 변환함(아직 실행X)
  3. 변환 결과 유지 – 중간 결과는 메모리에 유지.
  4. 액션 실행 (collect, save) – 여기서 진짜로 실행됨.
  5. 최종 결과 출력 – 결과를 보여주거나 저장.