AI Briefing

카카오 데이터PE셀, Spark Shuffle Partition 최적화 실험 결과 공개

·2021.10.08 00:00

핵심 내용

카카오 데이터PE셀이 Spark Shuffle Partition 최적화 실험을 통해 쿼리 개선과 Partition 수 조정으로 수행시간을 8.4시간에서 3.5시간으로 단축한 사례를 공개했다.

1 / 12

자세히 보기

카카오 데이터PE셀(응용분석팀)의 Logan은 Spark 자원 설정의 핵심인 Partition 수와 크기 조절을 통한 Shuffle Spill 방지 전략을 공유했다. 실제 HDFS 클러스터(3 Cores, 6GB Memory) 환경에서 두 테이블 Join 쿼리를 대상으로 4단계 실험을 진행한 결과, 초기 설정(Partition 300개)에서는 Shuffle Spill 770GB 발생하며 8.4시간이 소요되었다. Partition 수를 1800개로 늘려 크기를 140MB로 줄이자 Spill이 220GB로 감소하고 수행시간이 5.5시간으로 단축되었으며, 여기에 쿼리 최적화(Join 전 GroupBy 집계)를 적용하자 Spill이 사라지고 수행시간이 3.5시간으로 추가 단축되었다. 최적화 후에는 Core당 메모리를 3GB로 줄여도 3.7시간의 유사한 성능을 유지했다. 저자는 최적화 우선순위를 '쿼리 > Partition 수 조정 > Core당 메모리 증가' 순으로 제시하며, Shuffle Partition 크기를 100~200MB로 유지하는 것을 권장했다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.