Archive

[Spark] Spark Web UI 본문

------- DE -------/Spark

[Spark] Spark Web UI

enent 2022. 8. 25. 01:39
반응형

Job, Stage, Task 등 다양한 레벨에서 확인할 수 있고, 실행 계획 및 실제 수행 내역에 대한 Dag Visualizaiton 도 있다.

 

 

 

1. Job / Stage

Job/Stage 각 탭에서는 개별 Task의 Detail (완료 상태, I/O , Duration, Memory Consumption, 실행시간 등)을 살펴볼 수 있는 UI를 제공한다.

 

① Job > Event Timeline

Executor가 뜨고 죽는 시점을 확인할 수 있고, 아래 표에서 Complete 혹은 Fail 된 잡의 정보를 볼 수 있다.  Duration이 유난히 긴 Job에 대해선 조금 더 자세히 (Stage, Task 등) 살펴볼 필요가 있다.

 

또한 각 Job의 Description을 클릭하면 상세 Job 페이지가 뜨는데 DAG와 Complete Stage 목록 등을 확인할 수 있다.

 

 

 

② Stage

애플리케이션의 모든 Job 의 모든 Stage의 현재 상태에 대한 요약과 각 Stage에 대한 상세 정보(DAG, Task 평균 수행 시간, GC 시간, Shuffle Read 크기 및 Record 개수 등)를 제공한다.

 

Stage - Event Timeline
Stage - DAG Visualization

 

Stage 내에서 각각의 연산은 파란 박스로 표시되며, Task가 여러 개라면 병렬로 실행되는 것을 볼 수 있다.

 

Stage에서 파악할 수 있는 직관적인 정보는 아래와 같다.

  • Executor에서 Shuffle Data를 Read 중이라면, 너무 높은 Shuffle Read Blocked Time이 I/O 이슈의 Signal 일 수도 있다.
  • 높은 GC 시간은 Heap Memory에 너무 많은 객체가 있어서 Executor Memory 부족의 원인일 수 있다.
  • Max Task Time 이 평균보다 높으면 Partition들 끼리의 균등하지 못한 데이터 분포로 인해 Data Skew가 일어난 것일 수 있다. 

 

 

2. Executor

Executor 탭에서는 Application에 생성된 Executor들에 대한 정보를 제공한다.

Executor의 상세 자원 사용량 ( Disk, Memory, CPU Core), GC 수행시간, Shuffle 동안 읽고 쓴 데이터 양 등을 확인할 수 있다.

요약된 정보 뿐만 아니라 개별 Executor에서 메모리를 얼마나 쓰는지, 무슨 목적으로 쓰는지 확인할 수 있다. 

 

 

3. Storage

.cache().persist()의 결과로 Application에서 캐시 된 DataFrame / Table 정보를 제공한다

 

RDD Name을 클릭하면 자세한 정보를 볼 수 있는데, Memory와 Disk 상에서 Executor와 Partition이 어떻게 Cache 되어있는지 볼 수 있다.

 

4. SQL

Spark SQL Query 실행 계획 및 결과를 확인할 수 있다. 쿼리가 언제 어떤 잡에 의해 실행되고 얼마나 걸렸는지 등을 알 수 있다.

 

위의 Description 내 링크를 클릭하면 모든 Physical Operator들과 함께 상세 Executuion Plan을 보여준다. 

Execution Plan의 각 Physical Operator(Scain In Memory / HashAggregate / Exchange 등)의 세부적인 내용과 어떤 일을 했는지 확인할 수 있다. ( Record를 몇 개나 읽었는지, Shuffle로 얼마나 썼는지 등 ) 

 

 

 

5. Enviornment

현재 Spark Application이 실행되는 환경에 대해 알 수 있다.

 

 

 

 

Reference
Learning Spark (2nd) - 2. / 7. Optimizing and Tuning Spark Applications
https://spark.apache.org/docs/3.0.2/web-ui.html
https://www.databricks.com/it/blog/2015/06/22/understanding-your-spark-application-through-visualization.html

 

반응형
Comments