CHAPTER 01. 아파치 스파크란?

아파치 스파크란?

  • 빅데이터 처리를 위한 오픈소스 분산 처리 플랫폼
  • 통합 컴퓨팅 엔진이며 클러스터 환경으로 확장이 가능한 데이터를 병렬로 처리하는 라이브러리 집합이다

아파치 스파크 철학

빅데이터를 위한 통합 컴퓨팅 엔진과 라이브러리 집합

1. 통합

→ 다양한 데이터 분석 작업(SQL 처리, 머신러닝, 스트림 처리)을 같은 연산 엔진과 일관성 있는 API + 일관성 있는 API로 수행

→ 조합형 API를 제공하여 작은 코드 조각, 기존 라이브러리 활용해 애플리케이션 개발 가능

2. 컴퓨팅 엔진

→ 저장소 시스템의 데이터를 연산하는 역할만 하고 영구 저장소의 역할은 수행하지 못함

→ 다른 스토리지 서비스 지원(Apache Hadoop, asw s3, cassandra, kafka...)

→ 데이터 저장 위치와 상관없이 데이터 처리에 집중

3. 라이브러리

→ 데이터 분석 작업에 필요한 통합 API를 제공하는 통합 엔진 기반의 자체 라이브러리이다.

스파크 등장 배경

하드웨어 성능 향상이 멈추면서 병렬처리를 통한 애플리케이션 성능 향상에 대한 수요가 증가함

다양한 데이터를 저렴하게 수집 가능, 빅데이터화 → 새로운 프로그래밍 모델 필요!

스파크의 역사

맵리듀스 엔진을 사용하는 대규모 애플리케이션의 난이도와 효율성 문제

여러 단계로 이루어진 애플리케이션을 간결하게 개발할 수 있는 함수형 프로그래밍 기반의 API를 설계, 연산 단계 사이에서 메모리에 저장된 데이터를 효율적으로 공유할 수 있는 새로운 엔진 기반의 API 구현

스파크 실행하기

  • 스파크 실행을 위한 설정한 환경변수

    jupyter notebook과 연동

    # for spark
    export SPARK_HOME=/usr/local/Cellar/apache-spark/3.1.2/libexec
    export PATH=$PATH:$SPARK_HOME
    
    # for pyspark
    export PYSPARK_PYTHON=~/opt/anaconda3/bin/python
    export PYSPARK_DRIVER_PYTHON=jupyter
    export PYSPARK_DRIVER_PYTHON_OPTS=notebook
  • 실행

    $ pyspark

좋은 웹페이지 즐겨찾기