
스파크는 메모리 중심의 처리 방식을 채택하고 있어서, 디스크 I/O를 줄이고, 더 빠르게 대용량 데이터를 처리할 수 있는 장점이 있습니다.
스파크는 기본적으로 메모리 기반 분산 처리를 강조하며, 중간 결과를 디스크에 기록하지 않고 메모리에 저장하여 처리합니다.
스파크는 데이터를 디스크에 저장하는 대신, 중간 결과를 메모리에 저장합니다.
이 방식은 속도를 크게 향상시키며, 여러 번의 읽기/쓰기를 피할 수 있게 해줍니다.
데이터를 메모리에 올려두고 연속적으로 처리하기 때문에, 빠른 처리 속도를 자랑합니다.
맵리듀스에서 중간 결과를 계속 디스크에 기록하고 다시 읽는 과정을 하지 않기 때문에 훨씬 더 효율적입니다.
스파크의 핵심 개념은 RDD라는 데이터 구조입니다.
RDD는 불변(immutable)하고 분산된 데이터셋을 나타냅니다.
RDD는 메모리에서 처리되며, 디스크 I/O 없이 작업을 빠르게 수행할 수 있습니다.
RDD는 작업이 실패할 경우에도 중간 데이터를 메모리에 저장하고 복구할 수 있기 때문에 내결함성(fault-tolerance)도 제공합니다.
스파크는 데이터를 한 번만 읽고 나서 메모리에 올려놓고, 그 후의 모든 처리는 메모리 내에서 이루어집니다.
중간 결과를 디스크에 저장하거나 다시 읽는 것이 아니라, 데이터를 한 번만 읽고 메모리에서 바로 처리합니다.
이 덕분에 반복적인 디스크 I/O가 없어지고, 성능이 대폭 향상됩니다.
대용량 데이터셋을 스파크가 읽습니다.
예를 들어, "data.txt"라는 파일에 수백 GB의 데이터가 있을 때, 이를 한 번 읽어 메모리에
올립니다.
메모리에 올려진 데이터를 처리하며, 중간 결과가 메모리 상에 저장됩니다.
여러 작업자(노드)들이 데이터를 메모리에서 바로 처리하므로, 빠른 속도로 데이터를 분석하고 결과를 계산합니다.
| 특징 | 맵리듀스(MR) | 스파크(Spark) |
|---|---|---|
| 처리 방식 | 디스크 기반 처리 | 메모리 기반 처리 |
| 속도 | 상대적으로 느림 (디스크 I/O가 많음) | 매우 빠름 (메모리 내 처리) |
| 중간 결과 저장 | 디스크에 저장 (파일 시스템에 계속 읽고 쓰기) | 메모리에 저장 (디스크 I/O 최소화) |
| 내결함성 (fault tolerance) | 재시작 시 중간 결과를 디스크에서 다시 읽어 처리 | RDD의 데이터 복구 기능 제공 |
| 장점 | 안정적인 처리, 분산 환경에서 확장성 | 빠른 처리 속도, 반복적인 작업에서 뛰어난 성능 |
| 단점 | 디스크 I/O로 인한 속도 저하 | 메모리 사용량 증가 (메모리 크기에 한계 있음) |
1. 속도: 스파크는 데이터를 메모리에서 처리하므로, 대용량 데이터셋을 훨씬 더 빠르게 처리할 수 있습니다.
특히 반복적인 작업에 유리합니다.
2. 효율성: 디스크 I/O를 최소화하고, 데이터를 한 번 읽은 뒤 메모리에서 처리하는 방식이므로 성능 향상에 큰 도움이 됩니다.
3. 유연성: 스파크는 다양한 데이터 처리 작업을 지원하며, 데이터 처리, 머신러닝, 그래프 분석 등 여러 분야에서 활용될 수 있습니다.
맵리듀스는 대규모 데이터를 분산 처리하는 데 유용하지만, 중간 결과를 계속 디스크에 쓰고 읽어야 하는 방식이라 속도 저하가 발생할 수 있습니다.
반면, 스파크는 데이터를 메모리에 올려서 처리하므로 훨씬 빠르고 효율적인 데이터 처리가 가능합니다.
파일 시스템에 계속 읽고 쓰는 것을 피하고 한 번 읽고 메모리에서 처리하는 방식이 성능을 크게 향상시키는 핵심입니다.
따라서 대용량 데이터 처리에서 속도와 효율성을 극대화하려면 스파크 같은 메모리 기반 처리 시스템이 더 적합합니다.