Apache Spark의 실행 상태를 시각화

3192 단어 스파크시각화

Spark 시각화 도구



Spark의 실행 정보를 가시화하는 "trace-analysis"라는 툴이 Databricks의 Blog의 전서에 있는 링크 대상 로 소개되고 있었으므로 사용해 보았습니다.

준비



trace-analysis를 준비합니다. 환경은 Windows8.1을 사용합니다.
git clone https://github.com/kayousterhout/trace-analysis.git

시각화하는 Spark의 이벤트 로그는 Databricks가 공개하는 것을 사용하기로 결정했습니다. (주의 : 그대로 링크를 클릭하면 약 300MB의 텍스트가 표시되어 버리므로 오른쪽 클릭으로 저장하는 것이 좋습니다)
일반적인 환경에서는 spark.eventLog.enabled 및 spark.eventLog.dir이 적절하게 설정되면 지정된 디렉토리 아래에 "EVENT_LOG_1"의 이름으로 작성됩니다.

pdfcairo를 포함한 gnuplot 설치



pdfcairo를 포함하는 gnuplot이 필요한 것 같습니다.
그렇지 않으면 trace-analysis가 생성한 gnuplot 파일을 다시 편집하는 번거로움이 필요합니다.
귀찮아서 지금은 gnuplot을 제거하고 최신 버전을 다시 설치했습니다.

작업별로 시각화


$ python parse_logs.py 2015_03_01_bdb_sf5_48g_memory_event_log --waterfall-only
Traceback (most recent call last):
  File "parse_logs.py", line 4, in <module>
    import numpy
ImportError: No module named numpy

numpy가 없으면 화가 나서 numpy를 설치하고 다시 실행했는데 잘 작동했습니다.
$ python parse_logs.py 2015_03_01_bdb_sf5_48g_memory_event_log --waterfall-only
...
Job 84  has stages:  [226, 227, 228]
['229: 2192 tasks', '230: 1 tasks']
Stages to combine:  set([])
Job 85  has stages:  [229, 230]
['232: 200 tasks', '233: 1 tasks', '231: 2192 tasks']
Stages to combine:  set([])
Job 86  has stages:  [232, 233, 231]

pdf 만들기



gnuplot에서 pdf를 만듭니다.
$ gnuplot 2015_03_01_bdb_sf5_48g_memory_event_log_0_waterfall.gp

(gnuplot.exe:5800): Pango-WARNING **: couldn't load font "Times Not-Rotated 220", falling back to "Sans Not-Rotated 220", expect ugly output.

오류가 발생했지만 하나의 폴더에 PDF가 만들어졌습니다.
다만, 폰트가 겹치고 있어 보기 어렵습니다.



그래서 gp 파일을 엉망으로 크기를 늘리면 훨씬 보기 쉬워졌습니다.
원하는 gp 파일의 첫 번째 줄을 다음과 같이 변경했습니다.

2015_03_01_bdb_sf5_48g_memory_event_log_0_waterfall
set terminal pdfcairo font 'Times,22' linewidth 4 rounded dashlength 2 size 5,5

#sizeを修正

set terminal pdfcairo font 'Times,22' linewidth 4 rounded dashlength 2 size 10,10




전체 실행을 시각화



parse_log.py 옵션을 --parse-as-single-job으로 변경하면 전체 실행 시간을 하나의 그래프에 표시할 수 있습니다.
다만, 사이즈를 100,100으로 해도 너무 작아 판별할 수 없는데다가, 한번의 pdf화에 30분 이상 걸리는 일도 있어 조정은 포기했습니다.

좋은 웹페이지 즐겨찾기