Spark vs. Hadoop

Park Jiseob·2025년 1월 11일
post-thumbnail

(아래 요약 있음)

1. 데이터 처리 방식

Hadoop (MapReduce): Hadoop의 데이터 처리 방식은 디스크 기반 처리이다. Map 단계에서 데이터를 읽고, 처리 결과를 디스크에 저장한 다음 Reduce 단계에서 다시 읽는 방식이다. 즉, 각 단계마다 데이터를 디스크에 저장하므로 I/O 오버헤드가 발생해 처리 속도가 상대적으로 느리다.
Spark: Spark는 데이터를 메모리에 저장하여 처리하는 인메모리(In-Memory) 컴퓨팅을 지원함. 처리 중간 단계에서도 데이터를 메모리에 유지하여, 디스크 접근 없이 연속적인 작업을 빠르게 수행할 수 있고, 특히 반복적인 데이터 처리나 실시간 처리에서 훨씬 유리하다.
Spark 장점: 메모리 기반 처리로 빠른 속도 제공
Hadoop 장점: 디스크 기반 처리로 메모리 의존도를 낮춰 메모리 자원이 부족할 때도 안정적

2. 속도

Hadoop: 디스크 기반 처리로 인해 반복 작업이나 복잡한 연산에서는 성능 저하가 발생할 수 있다. 특히, 머신러닝 알고리즘이나 반복적인 데이터 처리에는 적합하지 않을 수 있다.
Spark: Spark는 메모리 내에서 연산을 수행하기 때문에, 일반적으로 최대 100배까지 빠른 속도를 보여주고, 반복 작업과 실시간 분석에서도 매우 효율적이다.
Spark 장점: 빠른 데이터 처리, 반복 작업에 유리
Hadoop 단점: 느린 속도, 반복 작업에 비효율적

3. 유연성

Hadoop: Hadoop MapReduce는 주로 배치 처리(Batch Processing)에 적합한 모델이다. 대규모 데이터를 배치 방식으로 처리하는 데는 효율적이지만, 실시간 처리나 복잡한 데이터 분석에는 적합하지 않다.
Spark: Spark는 배치 처리뿐만 아니라 실시간 스트리밍, 머신러닝, 그래프 처리 등 다양한 데이터 처리 작업을 하나의 통합된 프레임워크로 처리할 수 있다.
Spark 장점: 다양한 작업(배치, 스트리밍, 머신러닝 등) 처리 가능
Hadoop 단점: 주로 배치 처리에만 사용 가능

4. 확장성

Hadoop: Hadoop은 수천 개의 노드를 가진 대규모 클러스터에서도 확장 가능하며, 대규모 데이터를 안정적으로 처리할 수 있다. 특히, YARN을 통해 리소스를 효율적으로 관리할 수 있다.
Spark: Spark 역시 확장성이 뛰어나며, YARN뿐만 아니라 Mesos나 Kubernetes와 함께 사용할 수 있다. Hadoop과 비교해도 유사한 확장성을 제공하며, 대규모 클러스터에서 성능을 유지할 수 있다.
Spark와 Hadoop의 확장성은 대체로 유사: 둘 다 대규모 클러스터에서 안정적인 성능 제공

5. Fault Tolerance (내결함성)

Hadoop: Hadoop의 HDFS는 데이터 복제를 통해 내결함성을 제공한다. 또한 MapReduce는 각 단계의 작업 결과를 디스크에 저장하기 때문에, 작업이 실패하더라도 저장된 데이터를 기반으로 쉽게 복구할 수 있다.
Spark: Spark는 RDD (Resilient Distributed Dataset)를 사용하여 내결함성을 보장한다. RDD는 데이터의 변환 과정을 추적하여, 장애가 발생해도 데이터를 재생성하거나 중단된 작업을 재개할 수 있다.
Hadoop 장점: HDFS를 통한 강력한 내결함성
Spark 장점: RDD를 통한 빠른 복구 및 작업 재개

6. 데이터 처리 비용

Hadoop: 디스크 기반 처리를 사용하기 때문에 메모리 자원이 부족한 경우에도 동작하며, 메모리 사용 비용이 낮고, 대용량 데이터를 저렴하게 처리할 수 있다는 장점이 있다.
Spark: 메모리에 데이터를 저장하고 처리하므로, 메모리 자원이 충분해야 하며 그만큼 메모리 비용이 높아질 수 있다. 메모리 부족 시 성능 저하가 발생할 수 있다.
Hadoop 장점: 메모리 의존도가 낮아 대규모 데이터 처리 시 비용 효율적
Spark 단점: 메모리 비용이 높고 메모리 부족 시 성능 저하 가능

7. 실시간 처리

Hadoop: Hadoop은 배치 처리에 중점을 두고 설계되었으며, 실시간 데이터 처리에는 적합하지 않다.
Spark: Spark는 Spark Streaming을 통해 실시간 데이터를 처리할 수 있으며, 로그 분석, 실시간 이벤트 처리 등 실시간 분석 작업에 매우 적합하다.
Spark 장점: 실시간 데이터 스트리밍 처리 가능
Hadoop 단점: 실시간 처리에 적합하지 않음

< 요약 >

특징Apache SparkHadoop (MapReduce)
데이터 처리 방식메모리 기반 인메모리 처리디스크 기반 처리
속도최대 100배 빠름상대적으로 느림
유연성배치, 실시간 스트리밍, 머신러닝 등 지원주로 배치 처리
확장성대규모 클러스터에서 확장 가능유사한 확장성 제공
내결함성RDD로 복구 가능HDFS로 강력한 내결함성 제공
비용메모리 자원이 필요, 메모리 비용 높음디스크 기반 처리로 비용 효율적
실시간 처리실시간 스트리밍 처리 지원실시간 처리에 적합하지 않음
profile
Data Engineer

0개의 댓글