SPARK 기본개념
SPARK 기본 개념 정리
Section 01. SPARK 기본 개념
1. SPARK
▶ 빠른 속도로 작업을 수행할 수 있도록 설계한 클러스터용 연산 플랫폼
-
맵리듀스 몯레을 대화형 명령어 쿼리나 스트리밍 처리가 가능하도록 확장한 것
-
대량 데이터 처리시 속도가 중요한데, 속도를 높이기 위해 스파크가 제공하는 기능 중 하나는 연산을 메모리에서 수행하는 기능이며, 디스크에서 돌리더라도 맵리듀스보다 뛰어난 성능을 보여줌
2. SPARK 구성
▶ 스파크 프로젝트는 밀접하게 연동된 여러 개의 컴포넌트로 구성되어 있음
핵심
스파크 : 많은 연산 작업 프로그램을 스케줄링하고 분배하고 감시하는 역할
밀접한 컴포넌트 연동의 장점
- 소프트웨어 구성에 포함된 라이브러리나 컴포넌트들이 하위 레이어의 성능 향상에 의해 직접적인 이익을 볼 수 있음
- 새로운 컴포넌트가 추가되어도 별도의 설치 없이 바로 쓸 수 있음
→ 다운로드, 배포, 업그레이드에 필요한 비용 절감이 가능
→ 서로 다른 데이터 처리 모델을 하나의 어플리케이션으로 만들 수 있음
스파크 코어
- 작업 스케줄링, 메모리 관리, 장애 복구, 저장 장치와의 연동 등의 기능으로 구성
- 분산 데이터셋(RDD, Resilient Distributed Dataset)를 정의하는 API 기반 → RDD : 여러 컴퓨터 노드에 흩어져 있으면서 병렬처리될 수 있는 아이템들의 모음 → 스파크 코어는 모음들을 생성 및 조작할 수 있는 API 지원
스파크 SQL
- 정형 데이터를 처리하기 위한 스파크 패키지
→ SQL 뿐만아니라 하이브 테이블, parquet, json등 다양한 소스 지원
→ SQL 인터페이스 제공 뿐만 아니라 분석작업과 SQL 연동도 지원
스파크 스트리밍
- 실시간 데이터 스트림을 처리 가능하게 해주는 스파크의 컴포넌트
→ 데이터 스트림 : 제품 환경의 웹 서버가 생성한 로그 파일이나 상태 업데이트 메시지가 저장된 큐
→ 스트림 조작 API를 지원함
MLlib
- 머신러닝 기능들을 갖고있는 라이브러리와 함께 배포
→ 분류, 회귀, 클러스터링 등 머신러닝 알고리즘 뿐만 아니라 모델 평가 및 외부 데이터 불러오기 기능도 지원
→ 클러스터 전체를 사용하여 실행되도록 설계됨
그래프 X
- 그래프를 다루기 위한 라이브러리
→ 그래프 병렬 연산을 수행
→ 간선이나 점에 임의의 속성을 추가한 지향성 그래프를 만들 수 있음
클러스터 매니저
- 하둡의 얀, 아파치 메소스, standalone scheduler 등 해당 클러스터 매니저 위에서 스파크를 실행할 수 있도록 지원
Leave a comment