Spark Job 성능 모니터링을 위한 Spark Analyzer 개발기

오랜만에 블로그 글을 썼습니다. 이번에는 회사 블로그에 Spark job 성능 모니터링 하기 위해 만들었던 Spark Analyzer 개발기를 써봤습니다.


Spark Analyzer는 꽤 간단합니다. 이 코드는 Spark History Server에 남아있는 Job 기록을 API를 호출해 가지고 와서 metric 계산을 합니다. 이 간단한 작업으로 매일 실행되는 6천 개 이상의 Spark job에서 발생하는 1천 개 이상의 크고 작은 비효율을 탐지할 수 있었습니다.


처음 고민할 때 영감을 받았던 블로그는 Uber에서 발행한 블로그인데요, 처음 읽었을 땐 우와 뭔가 굉장하네? 라고 생각했습니다. 그리고 이렇게 만들려면 시간이 꽤 오래 걸리겠다, 당장은 못하겠는데? 라고도 생각했고요. 그런데 제가 해결해야 할 문제는 생각만큼 어렵게 풀지 않아도 되고, 실제로도 예상보다 금방 개발할 수 있었습니다. 너무 어렵게 생각할 필요가 없었어요.


저와 비슷한 고민을 한 분들께(Spark 클러스터 비용이 많이 나오거나, 리소스가 부족해서 고통받는 분) 도움이 됐으면 좋겠습니다. Spark Job이 그렇게 많지 않다면, DataFlint만 도입하셔도 많은 도움이 될 겁니다.


https://toss.tech/article/spark-analyzer

---

uber blog: https://www.uber.com/en-KR/blog/spark-analysers-catching-anti-patterns-in-spark-apps/

dataflint: https://www.dataflint.io/

Spark Job 성능 모니터링과 최적화를 위한 Spark Analyzer 개발기

toss.tech

Spark Job 성능 모니터링과 최적화를 위한 Spark Analyzer 개발기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 10월 29일 오후 12:56

댓글 0