Page 15 -
P. 15

최초의 스파크는 UC 버클리 AMPLab의 마테이 자하리아와 그의 멘토였던 이온 스토이카, 그리                             1

                        고 레이놀드 신, 패트릭 웬델, 앤디 콘윈스키, 알리 고시가 설계했다(이들은 이후 데이터브릭스
                        (Databricks)를 창업했다). 스파크는 오픈소스로 공개했지만, 데이터브릭스는 아파치 스파크 개발                         아파치 스파크 소개
                        을 주도하며 스파크 코드의 75% 이상을 기여했다. 그들은 또한 데이터브릭스 클라우드(Databricks
                        Cloud)라는 스파크 기반의 빅데이터 분석 솔루션을 상용화했다.

                        사용자는 스파크의 잘 짜인 API와 런타임 아키텍처를 이용해 로컬 프로그램을 작성하는 것과 유
                        사한 방식으로 분산 프로그램을 작성할 수 있다. 스파크의 컬렉션은 대량의 노드에 분산된 데

                        이터를 참조할 수 있고, 스파크는 분산 데이터의 실제 위치를 사용자에게 노출하지 않고도 적절
                        히 추상화할 수 있다. 또 스파크에서는 데이터 처리 작업에 적합한 함수형 프로그래밍(functional
                        programming) 방식을 사용할 수 있다.

                        스파크는 파이썬과 자바, 스칼라, 최근에는 R 언어까지 지원해 사용자를 광범위하게 포용할 수 있
                        다. 전통적으로 파이썬과 R을 선호하는 학계, 여전히 많은 사용자를 보유한 자바 커뮤니티, 자바
                        가상 머신(  Java Virtual Machine, JVM)에서 함수형 프로그래밍 방식을 지원하며 점차 대중화되는 스

                        칼라 사용자도 스파크를 활용할 수 있다.
                        스파크는 맵리듀스와 유사한 일괄 처리 기능, 실시간 데이터 처리 기능, SQL과 유사한 정형 데

                        이터 처리 기능, 그래프 알고리즘, 머신 러닝 알고리즘을 모두 단일 프레임워크와 통합했다. 이
                        는 마치 빅데이터 애플리케이션에 필요한 대부분의 요구 사항을 만족시킬 수 있는 원스톱 편의
                        점과 같다. 오늘날 스파크는 가장 바쁘고 빠르게 성장하는 아파치 소프트웨어 재단 프로젝트임

                        에 틀림없다.
                        하지만 일부 애플리케이션은 스파크를 사용하기에 적합하지 않다. 스파크에서는 분산 아키텍
                                                                                  1
                        처 때문에 처리 시간에 약간의 오버헤드(overhead)가 필연적으로 발생한다.  대량의 데이터를 다
                        룰 때는 오버헤드가 무시할 수 있는 수준이지만, 단일 머신에서도 충분히 처리할 수 있는 데이터
                        셋을 다룰 때는 작은 데이터셋의 연산에 최적화된 다른 프레임워크를 사용하는 것이 더 효율적
                        이다(최근 이러한 사례가 점점 늘어난다). 또 스파크는 온라인 트랜잭션 처리(OnLine Transaction

                        Processing, OLTP) 애플리케이션을 염두에 두고 설계되지 않았다. 즉, 대량의 원자성(atomicity) 트
                        랜잭션을 빠르게 처리해야 하는 작업에는 스파크가 적합하지 않다. 반면 일괄 처리 작업이나 데이
                        터 마이닝 같은 온라인 분석 처리(OnLine Analytical Processing, OLAP) 작업에는 적합하다.







                        1  역주 오버헤드는 어떤 연산을 처리하는 데 별도로 필요한 간접적인 컴퓨팅 리소스를 의미한다.

                                                                                                      031




         spark_08.indd   31                                                                      2018-05-08   오후 6:26:10
   10   11   12   13   14   15   16   17   18   19   20