Spark Streaming을 활용한 파생 데이터 생성 시간 감축 사례
백엔드
Spark Streaming을 활용한 파생 데이터 생성 시간 감축 사례
두줄요약
Hive 배치 기반 파생 데이터 생성 지연 문제를 Spark Streaming으로 실시간 처리하도록 전환한 사례를 소개했습니다. Kafka 오프셋과 처리량, LAG 모니터링으로 안정적인 운영 방법도 함께 설명했습니다.
문제 상황
- Hive 배치 기반 파생 데이터 생성이 +1일 이후에 이뤄져 분석과 서비스 제공이 지연되는 문제
- 날짜 파티션 Hive 테이블 특성상 데이터가 완전히 쌓인 뒤에야 조인·변환 작업을 수행하는 구조
원인 분석
- 배치 작업 중심의 처리 방식으로 실시간 데이터 반영이 어려운 점
- 파생 데이터 생성 시 원천 데이터와 기존 Hive 테이블의 조인을 위해 완전 적재를 기다려야 하는 제약
해결 방법
- Kafka로 유입되는 데이터를 Spark Streaming으로 실시간 변환하는 Stream-Processor 구성
- Hive Query 재사용을 위해 Kafka 데이터를 Hive 테이블 형태의 temp view로 변환
- YARN 큐 분리, 마이크로 배치 처리량 조정, 오프셋 기반 중복 방지로 운영 안정성 확보
성능/운영 포인트
- 파이프라인별 driver·executor 리소스 조정과 batch_duration, max_rate_per_partition 설정으로 처리량 최적화
- Spark Job 상태, 마이크로 배치 처리량, Kafka LAG를 각각 모니터링
- Burrow와 Elasticsearch, Grafana로 지연과 이상 상태를 감지
