
(아래 요약 있음)
Hadoop (MapReduce): Hadoop의 데이터 처리 방식은 디스크 기반 처리이다. Map 단계에서 데이터를 읽고, 처리 결과를 디스크에 저장한 다음 Reduce 단계에서 다시 읽는 방식이다. 즉, 각 단계마다 데이터를 디스크에 저장하므로 I/O 오버헤드가 발생해 처리 속도가 상대적으로 느리다.
Spark: Spark는 데이터를 메모리에 저장하여 처리하는 인메모리(In-Memory) 컴퓨팅을 지원함. 처리 중간 단계에서도 데이터를 메모리에 유지하여, 디스크 접근 없이 연속적인 작업을 빠르게 수행할 수 있고, 특히 반복적인 데이터 처리나 실시간 처리에서 훨씬 유리하다.
Spark 장점: 메모리 기반 처리로 빠른 속도 제공
Hadoop 장점: 디스크 기반 처리로 메모리 의존도를 낮춰 메모리 자원이 부족할 때도 안정적
Hadoop: 디스크 기반 처리로 인해 반복 작업이나 복잡한 연산에서는 성능 저하가 발생할 수 있다. 특히, 머신러닝 알고리즘이나 반복적인 데이터 처리에는 적합하지 않을 수 있다.
Spark: Spark는 메모리 내에서 연산을 수행하기 때문에, 일반적으로 최대 100배까지 빠른 속도를 보여주고, 반복 작업과 실시간 분석에서도 매우 효율적이다.
Spark 장점: 빠른 데이터 처리, 반복 작업에 유리
Hadoop 단점: 느린 속도, 반복 작업에 비효율적
Hadoop: Hadoop MapReduce는 주로 배치 처리(Batch Processing)에 적합한 모델이다. 대규모 데이터를 배치 방식으로 처리하는 데는 효율적이지만, 실시간 처리나 복잡한 데이터 분석에는 적합하지 않다.
Spark: Spark는 배치 처리뿐만 아니라 실시간 스트리밍, 머신러닝, 그래프 처리 등 다양한 데이터 처리 작업을 하나의 통합된 프레임워크로 처리할 수 있다.
Spark 장점: 다양한 작업(배치, 스트리밍, 머신러닝 등) 처리 가능
Hadoop 단점: 주로 배치 처리에만 사용 가능
Hadoop: Hadoop은 수천 개의 노드를 가진 대규모 클러스터에서도 확장 가능하며, 대규모 데이터를 안정적으로 처리할 수 있다. 특히, YARN을 통해 리소스를 효율적으로 관리할 수 있다.
Spark: Spark 역시 확장성이 뛰어나며, YARN뿐만 아니라 Mesos나 Kubernetes와 함께 사용할 수 있다. Hadoop과 비교해도 유사한 확장성을 제공하며, 대규모 클러스터에서 성능을 유지할 수 있다.
Spark와 Hadoop의 확장성은 대체로 유사: 둘 다 대규모 클러스터에서 안정적인 성능 제공
Hadoop: Hadoop의 HDFS는 데이터 복제를 통해 내결함성을 제공한다. 또한 MapReduce는 각 단계의 작업 결과를 디스크에 저장하기 때문에, 작업이 실패하더라도 저장된 데이터를 기반으로 쉽게 복구할 수 있다.
Spark: Spark는 RDD (Resilient Distributed Dataset)를 사용하여 내결함성을 보장한다. RDD는 데이터의 변환 과정을 추적하여, 장애가 발생해도 데이터를 재생성하거나 중단된 작업을 재개할 수 있다.
Hadoop 장점: HDFS를 통한 강력한 내결함성
Spark 장점: RDD를 통한 빠른 복구 및 작업 재개
Hadoop: 디스크 기반 처리를 사용하기 때문에 메모리 자원이 부족한 경우에도 동작하며, 메모리 사용 비용이 낮고, 대용량 데이터를 저렴하게 처리할 수 있다는 장점이 있다.
Spark: 메모리에 데이터를 저장하고 처리하므로, 메모리 자원이 충분해야 하며 그만큼 메모리 비용이 높아질 수 있다. 메모리 부족 시 성능 저하가 발생할 수 있다.
Hadoop 장점: 메모리 의존도가 낮아 대규모 데이터 처리 시 비용 효율적
Spark 단점: 메모리 비용이 높고 메모리 부족 시 성능 저하 가능
Hadoop: Hadoop은 배치 처리에 중점을 두고 설계되었으며, 실시간 데이터 처리에는 적합하지 않다.
Spark: Spark는 Spark Streaming을 통해 실시간 데이터를 처리할 수 있으며, 로그 분석, 실시간 이벤트 처리 등 실시간 분석 작업에 매우 적합하다.
Spark 장점: 실시간 데이터 스트리밍 처리 가능
Hadoop 단점: 실시간 처리에 적합하지 않음
| 특징 | Apache Spark | Hadoop (MapReduce) |
|---|---|---|
| 데이터 처리 방식 | 메모리 기반 인메모리 처리 | 디스크 기반 처리 |
| 속도 | 최대 100배 빠름 | 상대적으로 느림 |
| 유연성 | 배치, 실시간 스트리밍, 머신러닝 등 지원 | 주로 배치 처리 |
| 확장성 | 대규모 클러스터에서 확장 가능 | 유사한 확장성 제공 |
| 내결함성 | RDD로 복구 가능 | HDFS로 강력한 내결함성 제공 |
| 비용 | 메모리 자원이 필요, 메모리 비용 높음 | 디스크 기반 처리로 비용 효율적 |
| 실시간 처리 | 실시간 스트리밍 처리 지원 | 실시간 처리에 적합하지 않음 |