본문 바로가기
SPARK

[SPARK] SPARK란? 사용이유

by yeah-12 2024. 7. 15.

 

What is 스파크?

  • 정의: Apache Spark는 SQL, 스트리밍, 머신러닝 및 그래프 처리를 위한 기본 제공 모듈이 있는 대규모 데이터 처리용 통합 분석 엔진. Spark는 클라우드의 Apache Hadoop, Apache Mesos, Kubernetes에서 자체적으로 실행될 수 있으며 다양한 데이터 소스에 대해 실행될 수 있다.
  • 쉬운 설명: 대용량 데이터를 다루는 것에 특화된 프레임 워크

 

Why 스파크?

완전 대용량 데이터 다룰 때 (ex. 약 800GB, 수 TB 등)

 

  • [+]
  • Pyspark: Python을 기반으로 하여 별도의 언어 공부가 필요 없음
  • 대용량 데이터: 대용량 데이터를 다루는 기술에 대한 이해
  • 분산 처리: 여러 대의 컴퓨터를 사용한다는 것에 대한 이해
  • 대용량 데이터 처리는 분할Partition하여 처리함으로써 스파크를 우회할 수 있지만, Graph 형식의 데이터는 분할하기 어려워 부득이 스파크를 사용

 

  • [-]
  • 때로는 스파크가 정말 필요해서 써야할 때도 있지만, 우회가 가능할 때도 있다.
  • 샘플링, 경량화, 분할, 스케일업을 통해 스파크를 통하지 않고 문제 해결 가능 할 때도 있음
  • 비싸고, 오래 걸리고, 승인도 번거롭고, 코드도 다시 짜야하고
  • 하루에도 수십억 건의 데이터가 발생하는 상황 → 하나의 머신으로는 감당 불가
  • 약 10~20대의 컴퓨터를 사용하면 하루에 3~5만원 정도.. 비싸다!