Hive와 Spark SQL을 활용한 BigBench 평가

Hive와 Spark SQL을 활용한 BigBench 평가
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 BigBench 벤치마크를 이용해 Hadoop 기반 MapReduce/Hive와 Spark SQL의 성능을 비교한다. 30개의 HiveQL 쿼리를 다양한 스케일 팩터(100 GB10 TB)에서 실행하고, 실행 시간, CPU·메모리·디스크·네트워크 사용량을 정량적으로 분석한다. 실험 결과 Spark SQL이 대부분의 쿼리에서 평균 24배 빠른 반면, 일부 복잡한 조인·집계 작업에서는 Hive가 더 안정적인 성능을 보였다.

상세 분석

본 연구는 BigBench를 최초의 엔드‑투‑엔드 분석 빅데이터 벤치마크로 채택하고, 이를 Hadoop 에코시스템의 두 핵심 엔진인 MapReduce 기반 Hive와 인‑메모리 처리 엔진인 Spark SQL에 적용함으로써 실질적인 성능 차이를 정량화한다. 먼저 기존 Hive‑MapReduce 구현을 Spark 환경에 포팅하기 위해 필요한 변환 단계(데이터 포맷 변환, HiveQL → SparkSQL 호환성 확보, UDF 재작성 등)를 상세히 기술한다. 실험은 3대 노드(각 16 CPU, 64 GB RAM, 2 TB HDD) 클러스터에서 수행되었으며, 스케일 팩터는 100 GB, 1 TB, 5 TB, 10 TB 네 단계로 설정하였다. 각 쿼리의 실행 시간은 평균 5회 반복 측정 후 평균값을 사용했으며, 동시에 CPU 사용률, 메모리 점유율, 디스크 I/O, 네트워크 트래픽을 Collectl 및 Ganglia를 통해 수집했다.

성능 측면에서 Spark SQL은 메모리 기반 캐시와 DAG 최적화 덕분에 단순 필터·프로젝션·그룹‑바이 쿼리에서 35배 가속을 달성했다. 특히 Q1Q5와 같이 대용량 테이블을 스캔하고 집계만 수행하는 워크로드에서 Spark는 CPU 활용률이 70 % 수준으로 유지되면서도 메모리 사용량이 30 % 이하로 억제되어 효율적인 리소스 사용을 보여준다. 반면, 복합 조인·다중 단계 집계가 포함된 Q12, Q18, Q23 등에서는 Spark의 스테이지 병목과 셔플 비용이 크게 증가해 Hive와 비슷하거나 약간 뒤처지는 결과가 나타났다. Hive는 디스크 기반 중간 결과 저장과 MapReduce의 자동 파티셔닝 덕분에 대규모 셔플이 발생하는 경우 안정적인 성능을 유지했지만, 전체적인 실행 시간은 Spark에 비해 1.5~2배 이상 오래 걸렸다.

리소스 활용 분석에서는 Spark가 CPU와 메모리를 균형 있게 사용하면서 디스크 I/O를 최소화하는 반면, Hive는 디스크 읽기/쓰기 비중이 40 % 이상 차지해 I/O 병목이 발생한다는 점을 확인했다. 네트워크 트래픽은 두 엔진 모두 셔플 단계에서 급증했지만, Spark는 파이프라인 압축과 병렬 전송을 통해 평균 20 % 정도 낮은 전송량을 기록했다. 또한, 실험 과정에서 발견된 12개의 호환성 문제(예: Hive UDF가 Spark에서 동작하지 않음, 파티션 스키마 불일치 등)와 그 해결책을 상세히 문서화함으로써 향후 연구자들이 동일 벤치마크를 재현하는 데 필요한 실무적 가이드를 제공한다.

결론적으로, 본 논문은 BigBench가 다양한 워크로드와 스케일 팩터에서 두 엔진의 성능·리소스 특성을 명확히 구분할 수 있는 유효한 스트레스 테스트 도구임을 입증한다. Spark SQL은 대부분의 분석 쿼리에서 우수한 처리 속도와 효율성을 보이지만, 복잡한 조인·다중 단계 집계가 중심인 워크로드에서는 Hive가 여전히 경쟁력을 유지한다는 점을 강조한다. 이러한 결과는 빅데이터 플랫폼 선택 시 워크로드 특성과 클러스터 리소스 구성을 종합적으로 고려해야 함을 시사한다.


댓글 및 학술 토론

Loading comments...

의견 남기기