Ssup2 Blog logo Ssup2 Blog

Spark Architecture를 분석한다.

1. Spark Architecture

[그림 1] Spark Architecture

[그림 1]은 Spark Architecture를 나타내고 있다. Spark는 Spark Core를 중심으로 Task 처리를 위한 Cluster Manager, Data를 저장하는데 이용하는 Storage, 다양한 기능을 수행하는 Libary로 구성되어 있다.

1.1. Spark Core

Spark Core는 Data를 Task 단위로 분산하여 처리하는 역할을 수행한다. Task는 Spark에서 데이터 분산 처리를 위해 고안한 데이터 집합인 RDD (Resillient Distributed Data)의 일부로 구성된다. 따라서 RDD 구성 및 처리가 Spark Core의 핵심 역할이다.

Cluster Manager는 Task를 수행하는 역할을 수행하며, Spark만을 이용하여 구성하는 Spark Standalone 부터 Hadoop YARN, Mesos, Kubernetes와 같은 별도의 Cluster Manager 이용도 가능하다. Storage는 Data가 저장되는 공간을 의미하며 HDFS, Gluster FS, Amazon S3등을 지원한다. Spark Core는 Java, Scala, Python, R 언어로 API를 제공한다.

1.2. Library

Library는 Spark Core를 기반으로 다양한 Type의 Workload 처리를 도와주는 역할을 수행한다. Library는 다양한 개발 언어를 통해서 이용할 수 있다. Library는 Spark SQL, MLib, GraphX, Streaming으로 구분지을 수 있다.

2. Spark Runtime Architecture

[그림 2] Spark Runtime Architecture

[그림 2]는 Spark Runtime Architecture를 나타내고 있다. Driver Program의 SparkContext, Cluster Manager, Worker Node의 Executor로 구성되어 있다.

3. 참조