Spark History MCP + AI Agent로 Spark 분석 자동화하기
AI
Spark History MCP + AI Agent로 Spark 분석 자동화하기
두줄요약
SparkListener와 Spark History MCP, n8n AI Agent를 연결해 Spark 장애 분석을 자동화했습니다.\n실시간 에러 감지와 히스토리 조회로 원인과 해결책을 Slack으로 전달했습니다.
문제 상황
- 매일 수십 개의 Spark 배치가 EMR에서 돌며, 실패 시 Spark UI·CloudWatch Logs·EMR 콘솔을 오가며 긴 시간 디버깅 필요
- OOM, Data Skew, Shuffle Spill, 네트워크 이슈처럼 원인 판별이 어려운 장애가 빈번
- Spark 내부 동작과 실행 계획 이해 없이는 근본 원인 파악이 어려운 운영 부담
해결 방법
- SparkListener로 실패 이벤트를 실시간 감지하고, JSON 형태의 에러 정보를 n8n Webhook으로 전달
- AI Agent가 Spark History Server MCP를 통해 메트릭과 실행 이력을 조회해 원인과 해결책을 분석
- 분석 결과를 Slack으로 전송하고, 단기 조치와 장기 조치를 함께 제시
구조와 흐름
- EMR 영역에서 Spark와 SparkListener가 이벤트를 수집하고 History Server에 실행 로그를 축적
- AI Workflow 영역에서 n8n이 Webhook, GPT-5-mini, MCP 서버를 연결해 자동 분석 수행
- Persistent Spark History Server 지원을 위해 오픈소스 MCP 서버를 수정해 transient EMR 환경에 대응
적용해볼 점
- Spark 장애 대응을 사후 수동 분석에서 실시간 감지와 자동 원인 분석으로 전환
- 반복되는 OOM이나 성능 저하를 AI 분석과 히스토리 기반으로 빠르게 좁혀가는 방식
- Slack 알림 중심의 운영 흐름으로 새벽 장애 대응 부담을 줄이는 구성