SK플래닛, Kafka와 Spark 기반 실시간 파생 데이터 생성 플랫폼 'Router' 개발
·2024.10.23 09:00
핵심 내용
SK플래닛이 기존 배치 처리의 지연 문제를 해결하기 위해 Kafka와 Spark Streaming을 결합한 실시간 데이터 파이프라인 서비스 'Router'를 개발했다.
1 / 3
자세히 보기
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가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.