이번 글에서는 Apache Spark에 대해 소개 하려고 한다.
큰 목차는 다음과 같다.
1. Apache Spark 등장배경
2. What is Apache Spark?
Apache Spark 등장 배경
Spark가 뭔지 알기 전에 왜 Spark가 등장했는지 먼저 알아보자.
Spark는 Hadoop MapReduce의 한계를 극복하기 위해 탄생했다.
빅데이터의 처리의 필요성이 급증하면서, MapReduce는 데이터 처리의 핵심 기술로 자리 잡았지만 몇가지 단점이 드러났다.
1. 느린 처리 속도
- MapReduce는 디스크 기반으로 데이터를 처리
- 모든 중간 결과를 디스크에 저장하고 다시 읽어오는 방식은 I/O 오버헤드를 발생시킴
2. 복잡한 프로그래밍 모델
- MapReduce는 데이터 처리 워크플로우를 Map과 Reduce 단계로 나눠야 했고, 이를 구현하는 데 많은 코드와 복잡한 작업이 필요
3. 실시간 데이터 처리
- MapReduce는 주로 배치(batch) 처리에 초점이 맞춰져 있어, IoT와 소셜 미디어 데이터 등 실시간 스트리밍 데이터 처리에 한계를 보임
4. 다양한 워크로드 지원 부족
- MapReduce는 데이터 처리 외에도 머신 러닝, 스트리밍, 그래프 처리와 같은 다양한 작업을 지원하지 않음
이러한 문제들을 해결하기 위해 Apache Spark가 개발되었다.
이제 Apache Spark가 뭔지 알아보자.
What is Apache Spark?
Spark를 정의 하면 다음과 같다.
in-memory 기반의 대용량 데이터 고속 처리 엔진으로 범용 분산 클러스터 컴퓨팅 프레임워크
또한 Spark는 다음과 같은 특징을 가진다.
Spark 특징
- 빠른 처리 속도
Hadoop MapReduce vs. Spark. - 데이터를 디스크가 아닌 메모리에 저장하고 처리함으로써 디스크 I/O 최소화
- 범용성
- 다양한 데이터 처리 요구를 하나의 프레임워크에서 수행 가능
- Spark SQL, Spark Streaming, MLlib, GraphX 등
- 다양한 언어 지원
- Python, Scala, Java, R, SQL과 같이 여러 프로그래밍 언어를 지원해 개발자의 편의성을 높임
- 확장성과 호환성
- 수십에서 수천 대의 노드로 확장 가능한 분산 클러스터 환경 지원
- Hadoop HDFS, Amazon S3등 다양하게 호환되며, 기존 Hadoop Ecosystem과 통합이 용이
- 풍부한 커뮤니티와 생태계
- Spark는 오픈소스 프로젝트로 활발한 커뮤니티와 많은 문서를 제공
이러한 특징들 덕분에, Apache Spark는 단순히 빠른 데이터 처리뿐 아니라 다양한 데이터 처리 요구를 하나의 프레임워크에서 해결할 수 있다.
또, 현대 빅데이터 환경에서 많은 인기를 끌고 있으며 다양한 분야에서 사용되고 있다.
마무리
이번 글에서는 Apache Spark의 등장 배경과 Apache Spark에 대해 간단히 소개하였다.
다음 글로는 Spark Ecosystem과 Spark의 아키텍처에 대한 내용을 포스팅할 예정이다.
'Data Engineering > Spark' 카테고리의 다른 글
[Spark] Zeppelin으로 SparkSQL 간단히 사용해보기 (1) | 2024.12.16 |
---|---|
[Spark] Apache Spark 설치 (2) | 2024.12.09 |
[Spark] What is RDD, DataFrame, Dataset? (0) | 2024.12.09 |
[Spark] Spark Ecosystem과 Spark Architecture (1) | 2024.12.06 |