Page 14 -
P. 14
많은 사람이 아파치 스파크(Apache Spark)를 고속 범용 분산 컴퓨팅 플랫폼으로 정의한다. 이는
자칫 허황된 광고 문구처럼 들리기도 하지만, 이보다 더 스파크를 적절하게 설명한 문구를 떠올
리기 어렵다.
아파치 스파크의 등장은 말 그대로 빅데이터 세계에 혁명을 일으켰다. 스파크는 메모리를 보다 효
율적으로 활용해 하둡(Hadoop) 맵리듀스(MapReduce)보다 10~100배 더 빠른 속도로 같은 작업을
수행할 수 있다. 또 스파크는 사용자가 클러스터를 다루고 있다는 사실을 인지할 필요가 없도록
설계된 컬렉션 기반의 API를 제공한다. 스파크의 컬렉션을 다루다 보면 마치 로컬 머신에서 스칼
라나 자바, 파이썬의 컬렉션을 사용하는 듯하지만, 실제로 스파크 컬렉션은 여러 노드에 분산된
데이터를 참조한다. 사용자가 스파크 컬렉션에 적용한 연산은 복잡한 병렬 프로그램으로 자동 변
환되는데, 이 과정을 사용자가 굳이 알 필요가 없다는 것이 스파크의 강점이다.
이 장에서는 스파크의 주요 기능을 알아보고, 스파크의 조상이라고 할 수 있는 하둡 맵리듀스
와 비교한다. 그리고 하둡 생태계(Hadoop ecosystem)를 간략하게 살펴보고, 스파크가 어떻게 이
들과 어울릴 수 있는지 알아본다(하둡 생태계는 하둡과 연동해 빅데이터 연산에 활용하는 다양
한 도구와 언어를 의미한다). 또 스파크를 구성하는 컴포넌트를 대략적으로 소개하고, 간단한
“Hello World” 예제를 작성하면서 일반적인 스파크 프로그램을 어떻게 실행하는지도 살펴본
다. 마지막으로 책에서 다루는 여러 예제를 실행할 수 있는 가상 머신을 내려받고 설치하는 과
정도 실습한다.
1.1 스파크란 S p A r k
아파치 스파크는 하둡의 맵리듀스를 빠르게 대체하는 흥미롭고 새로운 빅데이터 처리 플랫폼
이다. 아파치 하둡은 분산 컴퓨팅용 자바 기반 오픈소스 프레임워크로 하둡 분산 파일 시스템
(Hadoop Distributed File System, HDFS)과 맵리듀스 처리 엔진으로 구성된다. 스파크는 범용 분산
컴퓨팅 플랫폼이라는 점에서 하둡과 유사하지만, 대량의 데이터를 메모리에 유지하는 독창적인
설계로 계산 성능을 대폭 끌어올렸다. 스파크 프로그램은 맵리듀스보다 약 100배 더 빠른 속도로
같은 작업을 수행할 수 있다.
030
spark_08.indd 30 2018-05-08 오후 6:26:10