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
   15   16   17   18   19   20   21   22   23   24   25