이번 강은 파이프라인을 관측하는 모니터링과 로깅을 다룬다.
성능 병목을 찾고, 잡 실패를 감지하며, 접근을 감사하려면 어떤 도구를 보는지 알아야 한다.
이 강의 목표는 다음과 같다.
- Spark UI와 Query Profile로 병목을 진단한다.
- 시스템 테이블로 사용량·감사를 조회한다.
- 잡 알림으로 실패를 조기에 감지한다.
1. Spark UI
잡이 어떻게 실행됐는지 스테이지·태스크 단위로 보여 준다.
- 셔플 크기, 태스크 편차(스큐), 스필(spill)(메모리 부족으로 디스크로 넘침)을 확인한다.
- 특정 스테이지가 오래 걸리면 그 변환이 병목이다.
2. Query Profile
Databricks SQL의 쿼리 실행 계획과 각 연산의 소요·행 수를 시각화한다. 어떤 조인·스캔이 비싼지 짚어 준다.
3. 클러스터 메트릭
CPU·메모리·GC·네트워크 사용률을 본다. 메모리가 부족하면 스필·OOM이 생기므로 사양·파티션을 조정한다.
4. 시스템 테이블과 알림
- 시스템 테이블(system 카탈로그): 사용량·비용·접근을 SQL로 조회·감사한다.
SELECT * FROM system.access.audit
WHERE action_name = 'getTable' ORDER BY event_time DESC;
- Job 알림: 실패·지연 시 이메일·웹훅으로 통지한다.
- SQL 경고(Alert): 지표가 임계치를 넘으면 알림.
예제
예제) 특정 스트리밍 잡이 점점 느려지고 배치가 밀린다. 무엇부터 보나?
해설) Spark UI에서 스테이지별 소요와 셔플·스필을 확인한다. 상태가 계속 커지면 워터마크 누락(10강)을, 태스크 편차가 크면 데이터 스큐를, 스필이 잦으면 메모리 부족을 의심한다. 클러스터 메트릭으로 자원 포화를 보고, 원인에 따라 워터마크·파티션·사양을 조정한다.
샘플 문제
문) 잡의 셔플 크기와 태스크 스큐, 스필 여부를 확인하기 가장 적합한 도구는?
- (A) VACUUM 로그
- (B) Spark UI
- (C) DESCRIBE HISTORY
- (D) README
정답: (B). Spark UI가 스테이지·태스크·셔플·스필을 보여 주어 성능 병목 진단의 1차 도구다.
정리
- Spark UI로 스테이지·셔플·스큐·스필을 진단한다.
- Query Profile로 SQL 실행 계획의 병목을 짚는다.
- 시스템 테이블로 사용량·비용·접근을 SQL로 감사한다.
- Job 알림·SQL 경고로 실패와 이상을 조기에 감지한다.
마지막 강에서는 테스트와 배포(CI/CD)를 다룬다.
댓글 0
댓글은 운영자만 작성할 수 있어요.