[Apache Spark] 아파치 스파크(Apache Spark)란? 🧐

연수·2021년 11월 3일
1

spark

목록 보기
1/26

🧐 스파크는 대체 몰까..?

  • 빅데이터를 통한 "통합" "컴퓨팅 엔진"

            🔑 "통합" : 스파크 하나로 모든 처리를..!

    • 빅데이터 애플리케이션 개발에 필요한 통합 플랫폼의 제공이 핵심 목표

    • 데이터 읽기, SQL 처리, 스트림 처리, 머신러닝까지 다양한 작업을 같은 연산 엔진과 일관성 있는 API로 수행 가능

      🔑 "컴퓨팅 엔진"

    • 스파크는 저장소의 역할은 수행하지 않는다.

    • 데이터 연산에 집중!

    • HDFS, 카산드라, Kafka 등 다양한 storage를 지원

  • 빅데이터 처리를 위한 오픈소스 병렬 분산 처리 플랫폼

  • 인메모리 기반의 대용량 데이터 고속 처리 엔진

  • 범용 분산 클러스터 컴퓨팅 프레임워크

🏰 Spark 등장 배경

하둡의 맵리듀스(MapReduce)는 병렬로 데이터를 처리하는 최초의 오픈소스 시스템이자 클러스터 환경용 병렬 프로그래밍 엔진의 대표주자였다.

🗺️ MapReduce

  • HDFS 상에서 동작하는 데이터 분석 프레임워크
  • Job을 여러 Task로 나누어 분산 처리

그러나 맵리듀스 엔진을 사용하는 대규모 애플리케이션에는 난이도와 효율성 문제가 존재하였다.

🥲 MapReduce의 한계

  1. 성능적 한계

    디스크 기반: 메모리 기반에 비해 속도가 느리다

  2. 알고리즘적 한계

    다양한 데이터 분석 과정이 단순히 map, reduce 패턴으로 치환되어 처리되기 어렵다

    외부 라이브러리(R, Python 등) 다른 분석용 도구를 연동하기에 불편하다

이러한 문제점을 해결하기 위해 Spark가 등장하였다! 😎

  • 연산 단계 사이에서 메모리에 저장된 데이터를 효율적으로 공유 가능 → 매 작업마다 데이터를 디스크가 아닌 메모리에 캐시로 저장
  • 대화형 데이터 분석, 비정형 쿼리 등 지원
  • 맵리듀스의 단점을 보완하는 새로운 프로세싱 프레임워크


✨ Spark의 특징

  1. 스피드
    • 인메모리 캐싱
  2. 사용하기 편리하다
    • 스칼라로 구현 + Java, Python(PySpark), R의 프로그래밍 언어 지원
  3. Generality
    • 여러 기능이 집약된 플랫폼으로, SQL, Streaming API 등 사용 가능
  4. 범용성
    - Hadoop, Apache Mesos, Kubernetes, Standalone 등 지원


[출처] 스파크 완벽 가이드 (빌 체임버스, 마테이 자하리아 지음)

profile
DCDI

0개의 댓글