20분
Jobs와 Stages: 실행 흐름 이해하기
Spark UI: 병목 찾기와 디버깅
Jobs와 Stages: 실행 흐름 이해하기
Spark 심화: Streaming & Delta Lake > Spark UI: 병목 찾기와 디버깅
학습 목표
Job, Stage, Task의 관계를 이해한다 Jobs 탭에서 병목을 찾는 방법을 안다 Stages 탭을 분석할 수 있다
Job → Stage → Task 계층 구조
에디터 로딩 중...
언제 새 Job이 생기나?
Action이 호출될 때:
- count(), collect(), show()
- write(), save()
- foreach()
에디터 로딩 중...
언제 새 Stage가 생기나?
Shuffle이 필요할 때:
- groupBy + agg
- join
- orderBy (전역)
- repartition
에디터 로딩 중...
Jobs 탭 분석
에디터 로딩 중...
체크포인트:
- Duration이 긴 Job은?
- Stages 숫자가 많은 Job은?
Stages 탭 분석
에디터 로딩 중...
핵심 지표:
| 지표 | 의미 | 문제 신호 |
|---|---|---|
| Duration | Stage 소요 시간 | 다른 Stage 대비 비정상 |
| Shuffle Write | 다음 Stage로 보낸 데이터 | 클수록 느림 |
| Shuffle Read | 이전 Stage에서 받은 데이터 | 클수록 느림 |
| Spill | 디스크로 넘친 데이터 | 0이 아니면 메모리 부족 |
Stage Details: Task 분포 확인
에디터 로딩 중...
Data Skew 신호:
- Max가 Median의 10배 이상
- Max Duration >> 나머지
실습: Stage 분석 체크리스트
에디터 로딩 중...