LabHub
学习 学习路径 课程

Apache Spark — 느린 잡의 답은 실행 계획과 이벤트 로그에 있다

데이터 & AI 엔지니어링 · 中级 · 讲解 10 · 测验 10 · 实验 10

Spark 4.2 를 파드 하나에서 local 모드로 돌리며 잡·스테이지·태스크가 어떻게 나뉘는지, 스키마와 깨진 줄, SQL 과 DataFrame 의 같은 계획, 조건 밀어내기와 가지치기, 셔플 파티션과 AQE, 조인 전략과 쏠림, 캐시와 체크포인트, 파티션 레이크 쓰기, Structured Streaming 의 체크포인트와 워터마크까지 다룹니다. 모든 판정은 시간이 아니라 이벤트 로그의 계획·태스크 수·레코드 분포로 합니다. SQL 과 파이썬을 조금 써 본 분을 위한 과정입니다.

开始实验

课程大纲

드라이버와 잡

드라이버·실행기·잡·스테이지·태스크가 어떻게 나뉘고, 변환은 게으르며 행동이 일을 시키는지 이벤트 로그로 본다

스키마와 깨진 줄

스키마 추론의 비용과 위험, CSV 파싱 모드 셋이 깨진 줄을 어떻게 다루는지

DataFrame 과 SQL

같은 질문을 SQL 과 DataFrame API 로 쓰면 같은 계획이 된다 — 집계와 윈도 함수

실행 계획 읽기

Catalyst 가 바꾸는 것 — 조건 밀어내기·칼럼 가지치기·파티션 가지치기·AQE 최종 계획

셔플과 파티션 수

넓은 변환의 비용, shuffle.partitions 200 과 AQE 합치기, repartition 과 coalesce

조인 전략

브로드캐스트 해시·정렬 병합·셔플 해시 조인, 임계값과 힌트, AQE 의 실행 중 전환, 키 중복의 뻥튀기

쏠림

태스크 하나만 끝나지 않는 이유, AQE 쏠림 조인·솔팅·뜨거운 키 떼어 내기, 부분 집계가 쏠림을 가리는 경우

캐시와 재계산

계보를 따라 다시 계산하는 비용, cache·persist 저장 수준, unpersist, 체크포인트로 계보 끊기

파일로 쓰기

저장 모드 넷, partitionBy, 정적·동적 덮어쓰기, 작은 파일과 maxRecordsPerFile, 커밋 프로토콜(_SUCCESS)

Structured Streaming

마이크로 배치, 파일 소스, 체크포인트(offsets·commits)와 파일 싱크 로그, availableNow, 중복 제거, 워터마크와 늦은 자료

参考文档