클라우드 컴퓨팅 & NoSQL

Spark 노트

Terry Cho 2014. 12. 18. 00:03

Spark을 살펴보기전에, 단순하게 빅데이터 실시간 분석을 위한 스트리밍 플랫폼 정도로 생각했다.

CEP 영역에 해당하는 Apache Storm 과 같은 개념으로 생각했었는데, Spark의 특징은 스트리밍은 하나의 특징일 뿐이고 조금 더 일반적인 클러스터링 플랫폼이다.

여러개의 컴퓨터를 묶어서 무언가(?)를 할 수 있는 플랫폼의 개념으로, 무엇인가 처리를 클러스터에 분산하여 실행하도록 해준다.

무언가가 데이타 분석도 될 수 있고, 머신 러닝이나 기타 여러가지가 될 수 있다.


Spark은 기존의 하둡의 Map & Reduce의 성능 문제, MR 기반의 복잡성을 제거하고자 탄생했다.

 메모리 기반의 처리를 통해서 기존의 MR에 비해 성능을 올리고 조금더 쉬운 데이타 접근을  목적을 두고 탄생했다.


Spark은 이미 몇가지 기본 라이브러리들을 탑재하고 있는데, 머신러닝을 위한 MLib, 그래프 계산을 위한 GraphX, 스트리밍 처리를 위한 Spark Streaming 그리고, 분산 데이타 베이스에 대해서 SQL 문장같은 처리를 가능하게 해주는 Spark SQL 등이 있다.

SparkSQL등은 Cassandra와 같은 분산 NoSQL에 SQL 문장으로 처리가 가능하게 해주고, 특히나 분산된 노드에 Map&Reduce와 같이 쿼리를 보내서 모아서 리턴해주는 기능을 프레임웍 차원에서 수행해준다.


주요 프로그래밍 언어로는 Java,Scala,Python을 지원하고 있다.


먼저 RDD의 개념을 이해해야 한다.


Spark tutorial

http://cdn.liber118.com/workshop/itas_workshop.pdf