개인 일정/공부

Hadoop과 Spark의 차이

박경태 2024. 1. 14. 23:48

Hadoop과 Spark는 둘 다 대규모 데이터 처리를 위한 오픈 소스 프레임워크로, 분산 컴퓨팅을 활용하여 대용량 데이터를 효과적으로 처리할 수 있도록 도와줍니다. 그러나 Hadoop과 Spark는 목적, 아키텍처, 작동 방식 등에서 다양한 차이가 있습니다.

1. **목적:**
   - **Hadoop:** 주로 대용량 데이터의 저장과 분산 처리를 위해 만들어진 분산 파일 시스템인 HDFS(Hadoop Distributed File System)과 데이터 처리를 위한 MapReduce 프로그래밍 모델을 제공합니다.
   - **Spark:** 빠른 데이터 처리와 다양한 데이터 처리 작업을 위한 통합 프레임워크로, 배치 처리, 반복적인 알고리즘, 실시간 스트리밍 등 다양한 작업을 지원합니다.

2. **처리 모델:**
   - **Hadoop:** MapReduce 모델을 사용하여 데이터 처리를 합니다. 이는 일반적으로 디스크에서 데이터를 읽고 중간 결과를 디스크에 저장하며, 여러 단계의 Map과 Reduce 작업으로 이루어집니다.
   - **Spark:** Resilient Distributed Datasets (RDDs)를 사용하는 데이터 처리 모델을 제공합니다. RDD는 분산된 데이터의 불변성을 유지하면서 여러 연산을 지원하며, 메모리 내에서 데이터를 처리하여 높은 성능을 제공합니다.

3. **성능:**
   - **Hadoop:** 디스크에서 데이터를 읽고 쓰기 때문에 I/O 비용이 상당히 높을 수 있습니다. 반면에, Hadoop은 안정적이고 확장성이 있습니다.
   - **Spark:** 메모리를 사용하여 중간 결과를 저장하고 반복적인 연산에서 높은 성능을 제공합니다. 따라서 Spark은 Hadoop보다 빠른 처리 속도를 가질 수 있습니다.

4. **API 및 언어 지원:**
   - **Hadoop:** Java 기반으로 개발되었으며, 다양한 언어를 지원하는데, 주로 Java, Python 등이 사용됩니다.
   - **Spark:** 다양한 언어를 지원하며, 주로 Scala, Java, Python, R 등을 사용할 수 있습니다. 특히 데이터 과학 및 머신러닝 작업을 위한 API도 갖추고 있습니다.

5. **사용 사례:**
   - **Hadoop:** 대용량 데이터의 저장 및 배치 처리에 적합하며, 주로 정형 데이터에 대한 처리에 사용됩니다.
   - **Spark:** 반복적인 알고리즘, 실시간 스트리밍, 머신러닝 등 다양한 작업에 적합하며, 대규모 데이터 처리 및 분석을 위해 사용됩니다.

6. **확장성:**
   - **Hadoop:** 안정적이고 확장성이 높은 분산 시스템을 제공합니다.
   - **Spark:** 높은 확장성을 제공하며, 메모리를 활용하여 빠른 처리를 가능케 합니다.

요약하면, Hadoop은 주로 대용량 데이터의 저장과 배치 처리에 사용되며, Spark는 높은 성능과 다양한 데이터 처리 작업을 지원하는 통합 프레임워크로써 사용됩니다.