Apache Spark 01 > 소개

소개

아파치 스파크(Apache Spark)는 빠르고 일반목적용 클러스터 컴퓨팅을 지원합니다. 또한 하나의 시스템에서 배치, 스트리밍, 그래프 프로세싱, SQL 처리 등을 모두 할 수 있습니다. 또한 Scala, Python, R을 지원하기 때문에 아주 좋습니다.

스파크에서 다루는 주요 데이터 타입은 RDD(Resilient Distributed Datasets)와 DataFrame입니다.

기존 하둡에서는 디스크에서 데이터 I/O가 발생하는 반면, 스파크는 RAM에서 발생하게 설정할 수 있으므로 속도에서 비약적인 차이가 발생합니다.

최근에는 RDD보다 DataFrame을 이용하는 추세이며(RDBS의 테이블이나 Pandas Dataframe과 유사하기 때문), Spark의 특징인 Lazy execution을 통해 보다 효율적인 처리/분석이 가능합니다.

Lazy Execution은 함수를 Transform, Action 으로 구분해 Action 일 경우에만 실제 실행이 발생하는 것을 의미합니다.

매번 결과를 갖고 오지 않고, 필요한 경우에만 RAM을 통해 데이터 I/O가 발생하므로 분석 작업 속도가 매우 높아집니다.

Spark에서 데이터 분석을 하는 경우, 매우 큰 사이즈의 데이터를 다루는 경우가 많아 이러한 매커니즘은 매우 중요한 장점으로 작용합니다.

설치

하둡 위에 바이너리 받아 설치하는 전통적인 방법도 있지만, 저는 도커(Docker)를 사용합니다. 설치는 다음 참조: https://hub.docker.com/r/sequenceiq/spark/

(계속)

댓글

이 블로그의 인기 게시물

Bradley-Terry Model: paired comparison models

R에서 csv 파일 읽는 법