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의 동작 과정
- 데이터 읽기 – 디스크에서 데이터를 읽음.
- Map 처리 – 데이터를 나눠서 처리함.
- 결과 저장 – 다시 디스크에 저장.
- Shuffle – Reduce 전에 필요한 데이터 정렬/이동.
- 다시 디스크에서 읽기 – Shuffle된 데이터를 다시 디스크에서 읽음.
- Reduce 처리 – 결과들을 모아서 처리.
- 최종 결과 저장 – 또 디스크에 저장.
SPARK의 동작 과정
- 데이터 로드 – 데이터를 메모리로 불러옴.
- 변환 연산 (map, filter) – 메모리 안에서 여러 번 변환함(아직 실행X)
- 변환 결과 유지 – 중간 결과는 메모리에 유지.
- 액션 실행 (collect, save) – 여기서 진짜로 실행됨.
- 최종 결과 출력 – 결과를 보여주거나 저장.
'IT개발 > Hadoop, Spark' 카테고리의 다른 글
[Spark] RDD의 사용 실습 & HDFS의 웹 로그 데이터 삽입(Flume) (0) | 2025.04.16 |
---|---|
[Hadoop] 알고 있으면 좋은 기본 개념 (0) | 2025.03.17 |