Pinterest에서 Apache Spark의 메모리 부족 오류 대폭 감소
Pinterest는 Apache Spark를 사용하여 대규모 데이터 처리 환경에서 빈번하게 발생하는 메모리 부족 오류(OOM) 문제를 해결했습니다. 그들은 "자동 메모리 재시도" 기능을 도입하여 OOM으로 실패하는 작업을 메모리를 늘린 실행자에서 자동으로 재시도하도록 했습니다. 주요 목표는 온콜 부하를 줄이고 실패하는 애플리케이션과 관련된 비용을 절감하는 것이었습니다. 핵심 아이디어는 더 많은 메모리가 필요한 작업에 특정 리소스 프로필을 할당하는 것이었습니다. 이 맞춤형 Apache Spark 버전은 스케줄링 루프를 수정하여 더 큰 메모리 프로필을 가진 작업을 하이브리드 방식으로 재시도합니다. 이 방식은 작업당 CPU를 늘리거나 필요한 경우 물리적으로 더 큰 실행자를 시작할 수 있습니다. 구현에는 Task 및 TaskSetManager와 같은 핵심 Spark 클래스를 확장하고 SparkUI를 업데이트하는 작업이 포함되었습니다. 그들은 비용 절감 및 작업 복구율을 측정하여 영향을 모니터링하기 위한 포괄적인 대시보드를 개발했습니다. 롤아웃은 임시 작업으로 시작하여 점차적으로 계층별로 예약된 작업을 통합하는 방식으로 진행되었습니다. 그 결과 OOM 오류를 성공적으로 줄이고 Spark 클러스터 내에서 리소스 활용도를 최적화했습니다.