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
'클라우드 컴퓨팅 & NoSQL' 카테고리의 다른 글
오픈소스 부하테스트툴 Locust #2 - 분산 부하 테스팅 (with 쿠버네티스) (0) | 2019.12.30 |
---|---|
오픈소스 부하테스트툴 Locust #1 - 설치와 스크립트 작성 방법 (1) | 2019.12.23 |
다르게 생각해볼만한 클라우드 컴퓨팅 활용 전략 (0) | 2016.03.14 |
MySQL HA over AWS 옵션 (0) | 2012.10.29 |
대용량 시스템 레퍼런스 디자인 (8) | 2012.08.12 |