Spark 이란?

Spark 의 기능 / 라이브러리 / 병렬 처리 엔진 에 대하여

목차

  • Spark 이란?

  • Spark 의 기능 / 라이브러리 / 병렬 처리 엔진 에 대하여

  • RDD

Spark 이란?

범용적이고 빠른 빅데이터 연산 작업을 수행하도록 설계된 "분산 클러스터링 플랫폼"

  • 메모리 하둡이라고도 불립니다.

  • 기존의 하둡이 M/R 작업을 디스크 기반으로 수행하기 때문에 느려지는 성능을 메모리 기반으로 옮겨서 고속화 하고자 하는데서 출발했습니다.

  • 이 위에 MapReduce나, 스트리밍 처리등의 모듈을 추가로 올려 사용할 수 있습니다.

  • 요즘은 대부분의 하둡 배포판에 스파크가 포함됩니다.

  • Spark의 엔진 자체만 놓고 보면 클러스터 컴퓨팅을 하기 위한 프레임워크처럼 추상화, 일반화 되어있고 범용적입니다.

기능

  • Map & Reduce (cf. Hadoop)

  • Streaming 데이타 핸들링 (cf. Apache Storm)

  • SQL 기반의 데이타 쿼리 (cf. Hadoop의 Hive)

  • 머신 러닝 라이브러리 (cf. Apache Mahout)

라이브러리

각종 데이터 처리 분야에 특화된 라이브러리

Apache Spark → Spark Core Spark SQL → hive와의 연동도 가능한 스키마 기반 데이터 분석 모듈 Spark Streaming → 실시간 스트리밍 데이터 처리 MLlib → 머신러닝 알고리즘 수행 GraphX → 그래프 알고리즘 처리 SparkR → 통계 분석 프로그램인 R과의 연동을 지원

병렬 처리 엔진

  • Spark의 기본컨셉은 드라이버(Driver)에서 정의한 여러 파티션(Partition)들에 대해 사용자의 특정한 작업(Task)을 각 노드의 실행기(Executor)가 수행해 주는 것입니다.

  • 이때 파티션 수가 여러 개 이고 이들을 각각의 노드에 퍼뜨려 수행하기 때문에 병렬처리 엔진이라고 부릅니다.

RDD (Resilient Distributed dataset)

"스파크가 사용하는 핵심 데이터 모델로서 다수의 서버에 걸쳐 분산 방식으로 저장된 데이터 요소들의 집합을 의미하며, 병렬처리가 가능하고 장애가 발생할 경우에도 스스로 복구될 수 있는 내성(tolerance)를 가지고 있다."

rdd-paper-review

Last updated