20

Jobs와 Stages: 실행 흐름 이해하기

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 탭 분석

에디터 로딩 중...

핵심 지표:

지표의미문제 신호
DurationStage 소요 시간다른 Stage 대비 비정상
Shuffle Write다음 Stage로 보낸 데이터클수록 느림
Shuffle Read이전 Stage에서 받은 데이터클수록 느림
Spill디스크로 넘친 데이터0이 아니면 메모리 부족

Stage Details: Task 분포 확인

에디터 로딩 중...

Data Skew 신호:

  • Max가 Median의 10배 이상
  • Max Duration >> 나머지

실습: Stage 분석 체크리스트

에디터 로딩 중...