top of page

Apache Spark™

spark.png

Apache Spark ™ 는 대규모 데이터 처리를위한 통합 분석 엔진입니다.

  • 속도 : 최첨단 DAG 스케줄러, 쿼리 최적화 프로그램 및 실제 실행 엔진을 사용하여 배치 및 스트리밍 데이터 모두에 대해 높은 성능을 제공합니다.

  • ​사용 용의성 : 병렬 응용 프로그램을 쉽게 만들 수있는 80 개 이상의 고급 연산자를 제공합니다. 또한 Scala, Python, R 및 SQL 쉘에서 대화식 으로 사용할 수 있습니다 .

  • Hadoop, Apache Mesos, Kubernetes, 독립형 또는 클라우드에서 실행됩니다. 다양한 데이터 소스에 액세스 할 수 있습니다.

Spark 이란?

스팍은 범용 분산 플랫폼입니다. 하둡과 같이 Map & Reduce 만 돌리는 것도 아니고, Storm 과 같이 스트리밍 처리만 하는게 아니라, 그냥 분산된 여러대의 노드에서 연산을 할 수 있게 해주는 범용 분산 클러스터링 플랫폼으로, 이 위에, Map & Reduce나, 스트리밍 처리등의 모듈을 추가 올려서 그 기능을 수행하게 하는 기능을 제공합니다.

 

특히나, 메모리 하둡이라고도 불리는데, 이 스팍은 기존의 하둡이 MR(aka. Map & Reduce) 작업을 디스크 기반으로 수행하기 때문에 느려지는 성능을 메모리 기반으로 옮겨서 고속화 하고자 하는데서 출발하였습니다.

 

그 플랫폼 위에 SQL 기반으로 쿼리를 할 수 있는 기능이나, 스트리밍 기능등등을 확장하여 현재의 스팍과 같은 모습을 가지게 되었습니다.

스팍의 주요 기능은 앞에서 언급하였듯이 

  • Map & Reduce (cf. Hadoop)

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

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

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


 

스팍의 구성

 

스파크는 여러 컴포넌트로 구성되어 있다.

 

  • 스파크 코어

    • 작업 스케쥴링, 메모리 관리, 장애 복구, 저장 장치와 연동 등 기본적 기능

  • 스파크 SQL

    • sql, hive table, parquet, json 등 다양한 데이터소스 지원

  • 스파크 스트리밍

    • 실시간 데이터 스트림용 컴포넌트

  • MLLib

    • 머신러닝 라이브러리

  • 그래프X

    • 그래프 그리는 용도

  • 클러스터 매니저

    • 하둡의 Yarn, 아파치 mesos 등 다양한 클러스터 매니저 위에서 동작

spark02.png

스팍의 장점

 

빠른 속도라는 장점은 필수 이고,  플랫폼으로써의 특성이 장점으로 작용합니다.

예를 들어 기존의 빅데이타 분석 플랫폼의 구현 구조를 보면, 배치 분석시 ETL 등을 써서 데이타를 로딩한 후에, Hadoop의 MR을 이용하여 데이타를 정재한후, 이 데이타를 OLAP 등의 데이타 베이스에 넣은 후에, 리포팅 툴로 그래프로 표현했습니다. 여기에 만약 실시간 분석을 요한다면 Storm을 연결해서 실시간 데이타 분석 내용을 더하는 일을 했습니다. 

사용되는 프레임웍만해도 몇가지가 되고, 이를 공부하는 시간과 시스템을 배포 운영하는데 여러가지 노력이 들어갔습니다만, 스팍은 하나로 이 모든것이 가능하다는 겁니다.

 

하나의 플랫폼내에서 여러가지가 가능한데다가 속도까지 빠릅니다.

그리고 한 플랫폼안에 배치,스트리밍, 머신 러닝등 다양한 처리를 제공하기 때문에, 하나의 데이타로 여러가지 형태로 데이타를 처리할 수 있는 기능을 가집니다.

 

연동성 부분에서도 장점을 볼 수 가 있는데, 스팍은 스칼라로 구현되었지만, 파이썬,자바,스칼라등 다양한 언어를 지원하기 위한 SDK를 가지고 있고, 데이타 저장단으로는 하둡, 아마존  S3, 카산드라등 다양한 데이트 스토리지를 지원합니다.

이런 연동성으로 다양한 언어로 다양한 데이타 저장소를 연동하여 데이타를 분석 및 처리할 수 있는 장점을 가지고 있습니다.



 

spark01.png

​출처 : Guido Schmutz Trivadis

bottom of page