35

실습: Spark UI로 병목 찾기

Spark UI: 병목 찾기와 디버깅

학습 목표

의도적으로 느린 Job을 만들 수 있다 Spark UI에서 병목을 식별할 수 있다 explain()으로 실행 계획을 분석할 수 있다

미션: 느린 Job 분석하기

의도적으로 비효율적인 코드를 작성하고, Spark UI에서 문제를 찾습니다.

시나리오

  1. Skew가 있는 데이터 생성
  2. 비효율적인 Join 실행
  3. Spark UI에서 병목 확인
  4. 최적화 후 비교

Spark UI 접속

로컬 환경: http://localhost:4040 (SparkSession 실행 중에만 접속 가능)

확인할 것

  • Jobs 탭: 가장 오래 걸린 Job
  • Stages 탭: Shuffle 크기, Task Duration 분포
  • SQL 탭: Exchange 개수, Join 방식
에디터 로딩 중...
힌트 보기
  • spark.sql.autoBroadcastJoinThreshold를 -1로 설정하면 자동 Broadcast 비활성화
  • explain()으로 코드에서 실행 계획 확인
  • SQL 탭에서 Exchange 노드를 찾아 Shuffle 확인
  • Task Duration의 Max와 Median 비교로 Skew 확인
  • BroadcastHashJoin이 보이면 Broadcast 적용 성공
정답 보기
에디터 로딩 중...