스파크
IT 위키
더 많은 작업
- Spark
- 대용량 데이터를 빠르게 처리하기 위한 인-메모리 기반의 분산 데이터 처리 엔진
- UC 버클리의 AMP 랩에서 개발하였으며, 현재 아파치 재단에서 관리
- 공개 소프트웨어로, 창시자가 설립한 데이터브릭스에서 주로 개발
- 하둡과 같은 분산 컴퓨팅에서 기존 디스크 입출력에 대한 시간 지연 발생
- 반복적인 작업이나 실시간 처리를 위해 빠른 처리 필요
- 하둡의 맵리듀스는 프로그램 처리 단계별로 중간 처리 데이터를 모두 하드디스크에 저장
- 맵리듀스 잡의 다른 맵리듀스 잡에서 사용하려면 디스트 저장 → HDFS에 저장 과정 필요
- 복잡한 단계를 가진 단계적 데이터처리에 부적합
- 스파크는 필요한 데이터를 메모리에 캐시로 저장하는 인-메모리 실행 방식 채택
- 단계별 처리 시 기존 결과를 메모리에 저장하고 메모리에서 불러옴으로써 I/O 시간 단축
- 하둡을 대체하여 빠른 속도로 성장 중이며 대용량 데이터 처리가 필요한 곳에서 범용적으로 활용
- 온라인 트랜잭션 처리(OLTP)보다 온라인 분석 처리(OLAP)에 더 적합
- 분산처리를 위한 시간적 오버헤드 발생
- 아주 작은 데이터를 처리 할 때도 기본적인 준비 과정 보유 → 소규모 데이터는 일반 DBMS가 유리
- Resilient Distribute Dataset
- 스파크의 기본 추상화 객체
- 특징
- 불변성(immutable): 읽기 전용
- 복원성(resilient): 장애 내성
- 분산성(distributed): 노드 한 개 이상에 저장된 데이터셋
대부분 Hadoop YARN을 사용하지만 다양한 클러스터 시스템과 연동 가능하다.
- Apache Hadoop YARN
- Kubernetes
- Apache Mesos
- Spark Standalone
