SK플래닛, Kafka와 Spark 기반 실시간 파생 데이터 생성 플랫폼 'Router' 개발
·2024.10.23 09:00
핵심 내용
SK플래닛이 기존 배치 처리의 지연 문제를 해결하기 위해 Kafka와 Spark Streaming을 결합한 실시간 데이터 파이프라인 서비스 'Router'를 개발했다.
자세히 보기
SK플래닛은 기존 Hadoop 기반 데이터 통합 클러스터(DIC)에서 발생하던 데이터 처리 지연 문제를 해결하기 위해 실시간 스트리밍 플랫폼 **'Router'**를 개발했다. 기존 방식은 Hive 테이블의 데이터가 완전히 수집된 다음 날 새벽에 파생 데이터를 생성하는 배치 처리 방식을 따랐으나, 이로 인해 분석 및 서비스 제공에 상당한 지연이 발생했다.
Router는 Kafka로 유입된 실시간 데이터를 Spark Streaming을 통해 즉시 변환하고 적재하는 구조를 채택했다. 데이터 흐름을 Directed Graph 형태로 시각화하여 UI에서 파이프라인을 설정할 수 있으며, 기존 배치 작업에서 사용하던 Hive Query 로직을 그대로 재사용할 수 있도록 설계되어 개발 효율성을 높였다.
핵심 아키텍처 및 기능
- 데이터 흐름 관리: Kafka Connect 기반의 Connect로 데이터를 수집하고, Spark 기반의 Processor로 변환한다. Stream-Processor는 Kafka 데이터를 실시간 변환하며, Hive-Processor는 Hive 테이블 데이터를 Kafka로 전송한다.
- 리소스 최적화: Yarn 환경에서 파이프라인별 리소스를 동적으로 조정할 수 있다. UI에서 Spark Executor의 코어 수와 메모리를 설정하여 데이터량에 맞는 자원 할당이 가능하다.
- 다양한 저장소 지원: Elasticsearch, S3, HBase 등 다양한 저장소로 데이터를 적재할 수 있으며, 현재는 HDFS 적재 후 Hive 조회 방식을 주로 사용한다.
모니터링 및 안정성 확보
실시간 처리의 안정성을 위해 Grafana와 Burrow를 활용한 3단계 모니터링 체계를 구축했다.
- Spark Job 상태 확인: Yarn의 applicationId를 추적하여 Job 정상 수행 여부를 확인하고, 필요 시 자동 재시작을 설정한다.
- 처리량 모니터링: 마이크로 배치당 처리된 Kafka 데이터 수를 계산하여 Elasticsearch에 로그로 남기고, 기준치 미달 시 알림을 발송한다.
- 데이터 지연(LAG) 감지: Kafka의 마지막 적재 오프셋과 컨슈머 그룹 오프셋의 차이인 LAG를 Burrow로 계산하여 데이터 소비 지연을 파악한다. WARNING, ERROR 등 비정상 상태 변화 시 즉시 알림을 수신한다.
SK플래닛은 이 시스템을 통해 데이터 수집과 동시에 파생 데이터 생성이 가능해져 인사이트 도출 속도를 크게 단축했으며, 향후 생성형 AI 기술용 데이터 플랫폼으로 확장할 계획이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.