Spark
> 데이터 병렬 처리를 위한 인메모리 분산 컴퓨팅 프레임워크임
> 다양한 스파크 라이브러리가 지원되며 데이터 분석, 그래프처리, 기계학습 등에 다양하게 사용됨
ex) Spark Streaming : 스트리밍 데이터 처리 라이브러리, Spark SQL : sql 처리 라이브러리, ...
Spark 구조
스파크는 Cluster Manager + Driver + Executor로 구성됨
Cluster Manager
> 클러스터의 리소스를 관리하는 역할
> Hadoop YARN, 쿠버네티스, 스탠드얼론 등이 가능함
Driver
> 스파크 작업의 정보를 유지하고 관리하는 중심적 역할
> 클러스터 매니저로부터 리소스를 할당받아서 Executor를 실행시키고 작업을 스케줄링함
> 사용자의 코드를 DAG으로 변환하고 여러 task로 분할한 후 Executor에게 작업을 실행하도록 함
이렇게 나뉘어진 task는 각 Executor에게 전달되어 수행됨
Executor
> Driver가 할당한 task를 수행하는 프로세스임
> 외부 소스로부터 데이터를 읽고 쓸 수 있음
> 연산 결과를 메모리에 저장하여 빠른 작업이 가능함
> Spark App이 수행되는 내내 동작하여 사용되고 여러 thread에서 task를 수행함
장점
> MapReduce와 다르게 중간 결과물을 메모리에 저장하기에 처리 속도가 빠름
> 스파크는 자바 뿐만 아니라 파이썬, 스칼라 등 지원하여 접근성을 높임
> 다양한 라이브러리를 제공하므로 단순 데이터 분석이 아닌 복합적 작업이 가능함
> 클러스터 매니저로 여러 선택지기 있기에 목적에 따라 정할 수 있음
단점
> 메모리를 많이 사용하기에 장비의 메모리 관리가 중요함
> real-time 데이터 스트림 지원은 안됨. Spark Streaming 작업에서는 입력을 작은 batch로 나뉘어서 실행하는 것임
YARN
> MapReduce의 확장성과 속도 문제를 해소하기 위해 새로 개발된 프로젝트
'츄Log > 끄적끄적' 카테고리의 다른 글
컨슈머 주도 계약, Spring Cloud Contract (0) | 2024.06.16 |
---|---|
뇌가 뜨거워지는 멀티스레드 프로그램에서 좀비스레드 (1) | 2024.06.15 |
Hadoop 에코시스템 먹방 -3. MapReduce (0) | 2024.06.11 |
Hadoop 에코시스템 먹방 -2. HDFS (0) | 2024.06.11 |
Hadoop 에코시스템 먹방 -1. Hadoop 개요 (0) | 2024.06.11 |