Page 17 -
P. 17

으로 등장했다. 이 도구들은 각기 다른 요구 사항을 하둡에 부가해 환경을 더욱 복잡하게 만들었                              1

                        다. 스파크는 하둡의 이러한 문제들을 상당 부분 해결했다.                                                  아파치 스파크 소개




                        1.1.3 스파크가 가져다준 선물


                        스파크의 핵심은 맵리듀스처럼 잡에 필요한 데이터를 디스크에서 매번 가져오는 대신, 데이터를
                        메모리에 캐시로 저장하는 인-메모리 실행 모델에 있다. 스파크는 동일한 작업을 맵리듀스보다
                                 2
                        최대 100배  더 빠르게 실행할 수 있다. 이러한 성능 향상은 특히 머신 러닝, 그래프 알고리즘 등
                        반복 알고리즘과 기타 데이터를 재사용하는 모든 유형의 작업에 많은 영향을 주었다.

                        그래프 형태로 저장된 도시 지도 데이터가 있다고 하자. 이 그래프의 정점(vertex)은 지도상의 관
                        심 지점(Point Of Interest, POI)을 나타내며, 간선(edge)은 두 지점 사이의 이동 가능한 경로와 거
                        리를 의미한다. 이제 새 구급차 기지를 건설할 장소를 지도상의 모든 지점과 최대한 가까운 위치
                        에 선정해야 한다고 하자. 이 위치는 바로 그래프의 중심 지점이다. 그래프의 중심 지점을 찾으려
                        면 먼저 모든 정점 간의 최단 거리(shortest path)를 계산한 후 각 정점별로 가장 먼 정점과의 거리

                        (farthest point distance)(다른 모든 정점과의 거리 중 최댓값)를 구한다. 마지막으로 가장 먼 정점과
                        의 거리가 가장 짧은 정점을 찾아야 한다. 이 알고리즘에서 가장 어렵고 복잡한 부분은 첫 번째 단
                        계, 즉 모든 정점 간의 최단 경로를 병렬로 계산하는 작업이다. 그렇다고 불가능한 일은 아니다.                   3

                        이 알고리즘을 맵리듀스로 구현하려면 각 단계의 계산 결과를 디스크(즉, HDFS)에 저장해야 한
                        다. 다시 말해 2단계에서는 1단계 결과를, 3단계에서는 2단계 결과를 각각 디스크에서 읽어 들인
                        다. 하지만 스파크에서는 모든 정점 간의 최단 경로를 찾은 후 이 결과를 메모리에 캐시할 수 있

                        다. 2단계에서는 메모리에 저장된 최단 경로 데이터를 사용해 각 정점별로 가장 먼 정점과의 거리
                        를 찾고, 그 결과를 다시 메모리에 캐시할 수 있다. 마지막 3단계에서는 최종 캐시된 데이터에서
                        가장 먼 정점과의 거리가 가장 짧은 정점을 찾을 수 있다. 따라서 데이터를 매번 디스크에 읽고 쓰

                        는 맵리듀스보다 스파크의 성능이 더 좋을 가능성이 높다.
                        실제로도 스파크의 성능은 매우 뛰어나다. 일례로 2014년 10월에 열린 데이토나 그레이 정렬 대

                        회(Daytona Gray Sort contest)에서 스파크는 100TB를 1406초 만에 정렬하는 세계 신기록을 세우
                        며 (엄밀히 말해 TritonSort와 공동으로) 우승했다(http://sortbenchmark.org).



                        2  Reynold Xin et al., Shark: SQL and Rich Analytics at Scale(http://mng.bz/gFry)
                        3  T. Srinivasan et al., A Scalable Parallelization of All-Pairs Shortest Path Algorithm for a High Performance Cluster
                           Environment(http://mng.bz/5TMT)

                                                                                                      033




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