Spark에 대해 알아보기
Spark 란?
데이터 엔지니어링, 데이터 분석에서 사용되는 tool
Lightning-fast unified analytics engine
특징
-
하둡보다 100배 빠르다. « 인메모리에서 작동하기 때문 (하둡은 디스크에서 작동)
-
사용하기 쉽다
Java, Scala, Python, R, SQL을 지원한다.
Scala가 메인이라 더 빠르긴 하다.
Process
Spark SQL & Shark | Spark Streaming | MLlib | GraphX |
Spark Core | |||
Standalone Scheduler | YARN | Mesos |
- Spark SQL : Dataframe, Datasets, RDD 중, Dataframe에 SQL을 사용해서 쿼리하거나 수정하는 역할
- MLlib : ML용 lib이 들어있음, tensor/keras 등을 사용하기 위해서는 Spark 위에 설치해서 사용가능
- Resource Manager : Standalone Scheduler, YARN, Mesos
물리적으로 여러 대의 컴퓨터에 나뉘어 있는 자원(Cluster)를 어떻게 관리할지 결정
- Standalone Scheduler : Spark의 기본 리소스 매니저
- YARN : 여러 대의 서버를 관리할 경우 주로 사용하는 리소스 매니저, Hadoop의 에코시스템 내에 있는 리소스 매니저
Cluster?
여러 대의 컴퓨터의 자원을 하나의 컴퓨터처럼 사용하는 방법론
Master - Slave 구조로 이루어져있다. (1:m)
- Driver Program : master의 역할, SparkContext는 메인 함수가 실행이 되는 구조, excutor의 매니징 역할도 포함
- Worker node : Slave의 역할
- Cluster Manager : 리소스의 managing 역할 (Standalone, Mesos, Yarn)