← 학습 카테고리

Learn

Spark

84개 모듈 · 현재 77번째

Spark 모듈 77/84 spark-learn-77

History Server — 잡이 끝난 뒤에도 Spark UI를 다시 열어본다

Spark History Server 및 Bucketing/Sort-Merge Bucket Join 공식 문서 종합 (웹 리서치, 2026) — Apache Spark 공식문서(monitoring), japila.pl The Internals of Spark SQL(Bucketing), SPARK-27865 Apache Spark 공식문서 Monitoring and Instrumentation

이 모듈을 다 읽으면

  • spark.eventLog.enabled/spark.eventLog.dir가 왜 필요한지(Spark UI가 잡 종료와 함께 사라진다는 문제) 설명할 수 있다
  • History Server가 이벤트 로그로부터 UI를 어떻게 재구성하는지 설명할 수 있다

spark-learn-03에서 다룬 Spark UI(잡 실행 중 DAG·스테이지를 보여주는 화면)를 전제로, 그 UI가 애플리케이션 종료와 함께 사라진다는 한계를 보완해 사후 분석(post-mortem)을 가능하게 하는 History Server를 정리한다.

왜 필요한가 — 기본 Spark UI는 잡이 끝나면 사라진다

spark-learn-03에서 다룬 Spark UI는 드라이버 프로세스 안에서 뜨는 웹 서버라, 애플리케이션이 끝나고 드라이버 프로세스가 사라지면 그 UI도 함께 사라진다 — '어제 새벽에 실패한 잡을 지금 와서 조사하고 싶다'는 흔한 상황에 대응할 수 없다는 뜻이다. spark.eventLog.enabled를 켜면 애플리케이션 실행 중 발생한 이벤트(잡·스테이지·태스크 시작/종료 등)를 spark.eventLog.dir(HDFS 경로 또는 로컬 경로, 기본값 file:///tmp/spark-events)에 기록해둔다.

핵심 포인트

  • 기본 Spark UI(spark-learn-03)는 드라이버 프로세스에 종속 — 애플리케이션 종료 시 함께 사라짐
  • spark.eventLog.enabled+spark.eventLog.dir로 잡·스테이지·태스크 이벤트를 파일로 기록(HDFS/로컬, 기본 file:///tmp/spark-events)

History Server — 이벤트 로그로부터 UI를 다시 그려낸다

History Server는 spark.history.fs.logDirectory에 지정된 기본 로그 디렉터리(그 아래 각 애플리케이션별 이벤트 로그가 하위 디렉터리로 쌓임)를 읽어, 마치 그 애플리케이션이 지금 실행 중인 것처럼 Spark UI를 다시 구성해 보여준다 — 이벤트 로그만 남아있으면 애플리케이션이 이미 오래전에 끝났어도 그때의 DAG·스테이지·태스크 세부 정보를 그대로 다시 볼 수 있다. 저장소는 로컬 파일시스템뿐 아니라 HDFS, S3, Hadoop API가 지원하는 어떤 저장소든 쓸 수 있다.

핵심 포인트

  • spark.history.fs.logDirectory 아래 애플리케이션별 이벤트 로그 하위 디렉터리를 읽어 UI를 사후 재구성
  • 저장소는 로컬 파일시스템뿐 아니라 HDFS·S3 등 Hadoop API 지원 저장소 어디든 가능