[논문 리뷰] Evaluating Hive and Spark SQL with BigBench
이 논문은 BigBench 벤치마크를 사용하여 Apache Hive (MapReduce 기반)와 Spark SQL의 성능과 확장성을 다양한 데이터 크기에서 평가한다. 대부분의 쿼리에서 Spark SQL이 Hive on MapReduce보다 뚜렷이 뛰어난 성능을 보이며, 중앙값 실행 시간을 최대 60%까지 단축시켰다. 또한 재현 가능한 벤치마크를 위해 설정 가이드, 실행 메트릭, 자원 활용도 분석을 상세히 제공한다.
The objective of this work was to utilize BigBench [1] as a Big Data benchmark and evaluate and compare two processing engines: MapReduce [2] and Spark [3]. MapReduce is the established engine for processing data on Hadoop. Spark is a popular alternative engine that promises faster processing times than the established MapReduce engine. BigBench was chosen for this comparison because it is the first end-to-end analytics Big Data benchmark and it is currently under public review as TPCx-BB [4]. One of our goals was to evaluate the benchmark by performing various scalability tests and validate that it is able to stress test the processing engines. First, we analyzed the steps necessary to execute the available MapReduce implementation of BigBench [1] on Spark. Then, all the 30 BigBench queries were executed on MapReduce/Hive with different scale factors in order to see how the performance changes with the increase of the data size. Next, the group of HiveQL queries were executed on Spark SQL and compared with their respective Hive runtimes. This report gives a detailed overview on how to setup an experimental Hadoop cluster and execute BigBench on both Hive and Spark SQL. It provides the absolute times for all experiments preformed for different scale factors as well as query results which can be used to validate correct benchmark execution. Additionally, multiple issues and workarounds were encountered and solved during our work. An evaluation of the resource utilization (CPU, memory, disk and network usage) of a subset of representative BigBench queries is presented to illustrate the behavior of the different query groups on both processing engines. Last but not least it is important to mention that larger parts of this report are taken from the master thesis of Max-Georg Beer, entitled "Evaluation of BigBench on Apache Spark Compared to MapReduce" [5].
연구 동기 및 목표
- BigBench 벤치마크를 사용하여 Hive on MapReduce와 Spark SQL의 성능을 평가하고 비교하는 것.
- BigBench가 대용량 데이터 시스템을 위한 확장성 있고 종단 간 분석 벤치마크로 유효한지 검증하는 것.
- 두 엔진에서 대표적인 쿼리에 대해 CPU, 메모리, 디스크, 네트워크 자원 활용도를 분석하는 것.
- Hadoop 클러스터에서 Hive와 Spark SQL를 사용해 BigBench를 실행할 때 발생하는 실질적 배포 과제와 해결 방법을 문서화하는 것.
- 다양한 스케일 팩터에 대해 재현 가능한 성능 데이터와 절대 실행 시간 측정치를 제공하는 것.
제안 방법
- 기존의 MapReduce 기반 BigBench 구현을 Spark SQL에서 실행 가능하도록 이식하여 기능 및 쿼리 호환성을 확보하는 것.
- 다양한 스케일 팩터를 사용하여 Hive (MapReduce)와 Spark SQL에서 모두 30개의 BigBench 쿼리를 실행하여 성능 확장성 평가.
- 검증 및 벤치마크 재현 가능성을 위해 절대 실행 시간 측정치와 쿼리 결과를 수집하는 것.
- 두 엔진에서 대표적인 쿼리에 대해 CPU, 메모리, 디스크, 네트워크 사용량을 모니터링하고 기록하는 것.
- 설치 및 실행 과정에서 발생한 기술적 문제와 그 해결 방법을 문서화하여 배포 재현 가능성을 확보하는 것.
- 일관되고 비교 가능한 성능 측정을 보장하기 위해 표준화된 Hadoop 클러스터 구성 사용.
실험 결과
연구 질문
- RQ1BigBench 쿼리 세트 전반에서 Spark SQL 성능은 Hive on MapReduce에 비해 어떻게 비교되는가?
- RQ2Hive와 Spark SQL에서 데이터 크기 증가(스케일 팩터 증가)에 따라 쿼리 실행 시간은 어떻게 변화하는가?
- RQ3다양한 쿼리 유형에 대해 Hive와 Spark SQL 간 자원 활용도(_CPU, 메모리, 디스크, 네트워크)의 차이는 무엇인가?
- RQ4BigBench는 Hive와 Spark SQL의 성능 특성 차이를 효과적으로 검증하고 스트레스 테스트할 수 있는가?
- RQ5Hadoop 클러스터에서 Hive와 Spark SQL를 사용해 BigBench를 배포하고 실행할 때 발생하는 실질적 과제는 무엇인가?
주요 결과
- BigBench 벤치마크 세트 전반에서 Spark SQL은 Hive on MapReduce 대비 중앙값 쿼리 실행 시간을 최대 60%까지 단축시켰다.
- 두 엔진 모두 데이터 크기 증가에 따라 성능 스케일링이 일관되고 예측 가능했으며, 쿼리 실행 시간이 스케일 팩터에 비례해 증가했다.
- 자원 활용도 패턴은 뚜렷한 차이를 보였다: Spark SQL은 Hive on MapReduce 대비 더 높은 메모리 및 CPU 사용량을 보였지만, I/O 및 네트워크 부하가 낮았다.
- 벤치마크가 두 엔진 모두를 효과적으로 스트레스 테스트하여, 다양한 쿼리 그룹 간 성능 저하 요인과 확장성 차이를 드러냈다.
- 배포 과정에서 UDF 호환성 문제와 설정 불일치 등의 기술적 문제가 발생했으며, 이는 해결되고 문서화되어 재현 가능성을 확보했다.
- 모든 실험에 대해 절대 실행 시간 값과 쿼리 결과가 제공되어 결과 검증 및 재현이 가능하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.