Apache Spark 등장 배경
Spark는 Hadoop 에서 사용되는 MapReduce 형태의 클러스 컴퓨팅 한계를 극복하고자 등장하게 되었습니다.
MapReduce는 Disk로부터 데이터를 읽은 후, Map을 통해 흩어져 있는 데이터를 key-value로 묶고 Reduce를 통해 원하고자 하는 데이터를 가공하여 Disk에 저장하게 되는 과정을 거치고 있는데, 이는 File 기반의 Disk I/O가 성능이 좋지 못하였고, Disk 대신 Memory 연산을 통해 성능을 향상 시키고자 Spark가 등장하게 되었습니다.
Apache Spark란
Apache Spark는 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합입니다. 분산 클러스터 컴퓨팅 프레임워크로 Fault Tolerance & Data Parallelism을 가지고 클러스터들을 프로그래밍 할 수 있게 도와줍니다. Spark는 클라우드의 Apache Hadoop, Apache Mesos, Kubernetes에서 자체적으로 실행 가능하며 여러 데이터 소스에 대하여 실행 될 수 있습니다.
기존에는 Hadoop의 단점을 보완하고자 나왔지만 오늘날에는 Hadoop의 YARN 위에 Spark를 얹고, 실시간성이 필요한 데이터는 Spark로 처리하는 방식을 사용하고 있습니다.
Apache Spark의 장점
- 속도
- Spark는 메모리상에서 동작하기 때문에, 반복적인 처리가 필요한 작업에서 Hadoop보다 속도가 최소 1000배 이상 빠르다고 알려져 있습니다.
- 사용 편리성
- Spark는 scalar로 구현되어있지만, 현재 Java, Python 등 다양한 언어를 지원하는 SDK를 가지고 있습니다. 또한 데이터 저장으로는 Hadoop , Amazon S3 등 다양한 data storage를 지원합니다. 제공하는 다양한 언어를 바탕으로 데이터 저장소를 연동하여 데이터를 분석 및 처리할 수 있습니다.
- 보편성
- SQL, DataFrame, Machine learning 등 다양한 라이브러리를 제공합니다. 이를 바탕으로 한 라이브러리내에서 동일한 어플리케이션을 수월하게 결합할 수 있습니다.
Apache Spark 아키텍처
기본적으로 Spark 애플리케이션은 2가지 주요 요소로 구성됩니다. 하나는 사용자 코드를 작업자 노드에 배포할 수 있는 드라이버이고, 다른하나는 해당 노드에서 실행되고 할당된 작업을 실행하는 실행 프로그램입니다. 둘 사이를 중재하려면 클러스터 관리자가 필요합니다. 해당 내용은 추후 좀 더 자세하게 Apache Spark 작동방식과 더불어 포스팅하도록 하겠습니다.
참고:https://cloud.google.com/learn/what-is-apache-spark?hl=ko
'Apache > Apache Spark' 카테고리의 다른 글
SQL 테이블과 뷰 (0) | 2023.08.20 |
---|---|
Spark SQL과 데이터 프레임 (0) | 2023.08.20 |
Spark DDL을 사용하여 dataframe 생성하기 (0) | 2023.08.04 |
Spark의 구조 확립 (0) | 2023.08.04 |
스파크 애플리케이션 개념의 이해 (0) | 2023.07.31 |