초록
분산 처리 플랫폼에서 다양한 빅 데이터 처리 어플리케이션들의 수행 성능 향상에 대한 관심이 높아지고 있다. 이에 따라 범용적인 분산 처리 플랫폼인 아파치 스파크에서 어플리케이션들의 처리 성능 최적화에 대한 연구들이 활발하게 진행되고 있다. 스파크에서 데이터 처리 어플리케이션들의 수행 성능을 향상시키기 위해서는 스파크의 분산처리모델인 Directed Acyclic Graph(DAG)에 알맞은 형태로 어플리케이션을 최적화시켜야 하고 어플리케이션의 처리 특징을 고려하여 스파크 시스템 파라미터들을 설정해야 하기 때문에 매우 어렵다. 기존 연구들은 각각의 어플리케이션의 처리 성능에 영향을 주는 하나의 요소에 대한 부분적인 연구를 수행했고, 최종적으로 어플리케이션의 성능개선을 이뤄냈지만 스파크의 전반적인 처리과정을 고려한 성능 최적화를 다루지 않았을 뿐만 아니라 처리성능과 상관관계를 갖는 다양한 요소들의 복합적인 상호작용을 고려하지 못했다. 본 연구에서는 스파크에서 일반적인 데이터 처리 어플리케이션의 수행 과정을 분석하고, 분석된 결과를 토대로 어플리케이션의 처리과정 중 스테이지 내부와 스테이지 사이에서 성능 향상을 위한 처리 전략을 제안한다. 또한 스파크의 시스템 설정 파라미터 중 분산 병렬처리와 밀접한 관계를 갖는 파티션 병렬화에 따른 어플리케이션의 수행성능을 분석하고 적합한 파티셔닝 최적화 기법을 제안한다. 3가지 성능 향상 전략의 실효성을 입증하기 위해 일반적인 데이터 처리 어플리케이션: WordCount, Pagerank, Kmeans에 각각의 방법을 사용했을 때의 성능 향상률을 제시한다. 또한 제안한 3가지 성능 최적화 기법들이 함께 적용될 때 복합적인 성능향상 시너지를 내는지를 확인하기 위해 모든 기법들이 적용됐을 때의 성능 향상률을 제시함으로써 본 연구에서 제시하는 전략들의 실효성을 입증한다.
Enhancing performance of big data analytics in distributed environment has been issued because most of the big data related applications such as machine learning techniques and streaming services generally utilize distributed computing frameworks. Thus, optimizing performance of those applications at Spark has been actively researched. Since optimizing performance of the applications at distributed environment is challenging because it not only needs optimizing the applications themselves but also requires tuning of the distributed system configuration parameters. Although prior researches made a huge effort to improve execution performance, most of them only focused on one of three performance optimization aspect: application design, system tuning, hardware utilization. Thus, they couldn't handle an orchestration of those aspects. In this paper, we deeply analyze and model the application processing procedure of the Spark. Through the analyzed results, we propose performance optimization schemes for each step of the procedure: inner stage and outer stage. We also propose appropriate partitioning mechanism by analyzing relationship between partitioning parallelism and performance of the applications. We applied those three performance optimization schemes to WordCount, Pagerank, and Kmeans which are basic big data analytics and found nearly 50% performance improvement when all of those schemes are applied.