본문 바로가기

Study/spark

[Spark] chapter 1 아파치 스파크란?

728x90
반응형

Chapter 1. 아파치 스파크(Apache Spark)란?

  •  가장 활발하게 개발되고 있는 병렬 처리 오픈소스 엔진, 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합
  •  단일 노트북 환경에서부터 수 천대의 서버로 구성된 클러스터까지 다양한 환경에서 실행 가능

스파크 기능 구성

1.1 스파크 등장 배경

새로운 처리 엔진과 프로그래밍 모델이 필요한 이유?

  •  컴퓨터 어플리케이션과 하드웨어의 바탕을 이루는 경제적 요인의 변화
  •  프로세서의 성능 향상이 해마다 빨리지고 있으며, 어플리케이션은 코드를 수정하지 않아도 자연스럽게 빨라지고 있음.
  •  대규모 어플리케이션은 이런 경향에 맞춰 만들어져, 대부분 단일 프로세서에서만 실행 되도록 설계
  •  대규모 데이터 처리를 프로세서의 성능 향상에 맡겼던 것
  •  하드웨어 성능의 성능 향상은 2005년 경에 멈춤(단일 코어 프로세서 → 멀티 코어 프로세서)
  •  데이터 저장 비용은 극히 저렴(대용량화), 클러스터에서 처리해야 할 만큼 방대해짐
  •  대용량 데이터 병렬처리의 요구가 발생, 스파크와 같은 새로운 프로그래밍 모델이 필요

 

 

1.2 아파치 스파크의 철학

통합

  •  빅데이터 어플리케이션 개발에 필요한 통합 플랫폼을 제공하자는 핵심 목표를 가지고 있음
  •  간단한 데이터 읽기부터 SQL처리, 머신러닝, 스트림 처리까지 다양한 분석 작업을 같은 연산 엔진과 일관성 있는 API로 수행할 수 있도록 설계

 

컴퓨팅 엔진

  •  데이터를 연산하는 역할만 수행, 영구 저장소 역할 수행은 하지 않음.
  •  그 대신 클라우드 기반의 저장소와의 연결을 지원(Azure, S3, Hadoop, Cassandra, Kafka)

 

라이브러리

  •  데이터 분석 작업에 필요한 통합 API를 제공하는 통합 엔진 기반의 자체 라이브러리
  •  스파크 코어 엔진 자체는 최초 공개 후 큰 변화가 없었지만 라이브러리의 경우 꾸준히 변해 옴(스파크 SQL, MLlib, GraphX).

 

1.3 스파크 역사

Spark: Cluster Computing with Working Sets (2010)

  •  2009년 UC 버클리 대학교에서 AMP Lab에서 연구 프로젝트로 시작
  •  새로운 프로그래밍 모델의 장단점을 이해하기 위해 맵리듀스 사용자들과 함께 연구
  •  스파크팀은 어플리케이션을 간결하게 개발할 수 있는 함수형 프로그래밍 기반의 API를 설계, 메모리에 저장된 데이터를 효율적으로 공유할 수 있는 새로운 엔진 기반의 API를 구현
  •  스파크의 조합형 API 의 핵심 아이디어는 계속해서 진화중임
  •  초기에는 함수형 연산 관점에서 API를 정의하였고, v1.0 부터는 스파크 SQL을 추가, 이후 DataFrame, ML pipeline 등을 추가

 

1.4 스파크 실행하기

 

728x90
반응형

'Study > spark' 카테고리의 다른 글

[Spark] chapter 2 스파크 간단히 살펴보기  (0) 2021.07.14