DATA+AI SUMMIT 2021 에서 발표한 Monitor Apache Spark 3 on Kubernetes using Metrics and Plugins 세션을 나름대로 정리해보았습니다. 잘못된 정보나 오류가 있다면 언제나 지적 부탁드립니다 :)
Spark 모니터링 생태계
Web UI
- 제일 쉽게 접근이 가능하면서 유용한 모니터링이 가능
- job, stage, stage, SQL, streaming, ... 등등의 세부사항 확인 가능
- default URL: http://driverhost:4040
Spark REST API + Spark Listener
- task와 executor의 metric들을 확인 가능
- web UI보다 더욱 세부적인 metric들을 확인 가능
Spark Metrics System
- Dropwizard metric 라이브러리를 통해 구현
- driver, executor의 여러 metric을 알 수 있음
- active task 개수
- job/stage complete/fail 여부
- executor의 cpu 사용량
- executor running time
- gc time
- shuffle metrics
- I/O metrics
- ...
- default URL: http://driver:4040/metrics/json
- executor의 경우 Spark의 local mode인경우에만 사용가능
- prometheus에서 사용하고있음
- pipeline
- spark 2.x~3.0 에서 k8s를 사용하는 경우는 다음과 같이 사용
$SPARK_HOME/bin/spark-shell \ --conf "spark.metrics.conf.*.sink.graphite.class"="org.apache.spark.metrics.GraphiteSink" \ --conf "spark.metrics.conf.*.sink.graphite.host"="graphiteEndPoint_influxDB_hostname" \ ...
Spark 3 metrics system with Plugins
- K8S pod들의 resource 관련 metric 등을 모니터링 가능
- nsight에서의 cpu 사용량, network in/out 같은 metric
- RSS, Swap, Cache 등의 세부 metric 확인 가능
- 사용자가 직접 커스터마이징해서 metric을 모니터링 가능
출처: https://databricks.com/session_na21/monitor-apache-spark-3-on-kubernetes-using-metrics-and-plugins
'Spark' 카테고리의 다른 글
Chapter 2. 스파크는 어떻게 동작하는가? (0) | 2022.01.31 |
---|---|
Chapter 1. 고성능 처리를 위한 스파크 시작하기 (0) | 2022.01.31 |
[Spark] Spark 3.x Structured Streaming의 checkpoint는 k8s환경에서 어떻게 관리해야할까? (0) | 2021.12.31 |
[Spark] repartition vs coalesce (feat. orderBy) (0) | 2021.12.31 |
[Spark-AI SUMMIT 2020] Fine Tuning And Enhancing Performance Of Apache Spark Jobs 요약 (0) | 2020.07.04 |