Page 20 -
P. 20
또 스파크는 잡( job)과 태스크를 시작하는 데 상당한 시간을 소모하기 때문에 대량의 데이터를 처
리하는 작업이 아니라면 굳이 스파크를 사용할 필요가 없다. 소량의 데이터를 처리할 때는 스파크
같은 분산 시스템보다 간단한 관계형 데이터베이스나 잘 짜인 스크립트가 훨씬 더 빠르다. 하지만
현대의 데이터 크기는 계속 증가하는 추세며, 언젠가는 관계형 데이터베이스 관리 시스템(RDBMS)
과 스크립트의 성능이 개선되는 속도를 추월할지도 모른다.
1.2 스파크를 구성하는 컴포넌트 S p A r k
스파크는 여러 특수한 목적에 맞게 설계된 다양한 컴포넌트로 구성된다. 그림 1-2에서 볼 수 있듯
이 스파크의 컴포넌트에는 스파크 코어(Core), 스파크 SQL, 스파크 스트리밍(Streaming), 스파크
GraphX, 스파크 MLlib가 있다.
스파크의 다양한 컴포넌트는 스파크를 여러 기능이 집약된 통합 플랫폼으로 발전시켰다. 그 결과
이전에는 여러 프레임워크를 연동해 구현해야 했던 작업을 이제 스파크만으로도 완료할 수 있다.
이 절에서는 스파크의 컴포넌트를 간략하게 소개한다.
1.2.1 스파크 코어
스파크 코어는 스파크 잡과 다른 스파크 컴포넌트에 필요한 기본 기능을 제공한다. 스파크 코어에
5
서 가장 중요한 개념은 스파크 API의 핵심 요소인 RDD(Resilient Distributed Dataset)다. RDD는
분산 데이터 컬렉션(즉, 데이터셋)을 추상화한 객체로 데이터셋에 적용할 수 있는 연산 및 변환 메
서드를 함께 제공한다. RDD는 노드에 장애가 발생해도 데이터셋을 재구성할 수 있는 복원성을
갖추었다.
5 RDD는 2장에서 본격적으로 설명한다. RDD는 스파크의 핵심 추상화 객체인 만큼 4장에서 자세히 다룬다.
036
spark_08.indd 36 2018-05-08 오후 6:26:11