11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Apache Sparkの実行状況を可視化する

Last updated at Posted at 2015-05-04

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が作られました。
ただ、フォントが重なっていて見づらいです。

フォントエラー.jpg

そこで、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

フォントエラー修正版.jpg

全体の実行を可視化する

parse_log.pyのオプションを--parse-as-single-jobに変えると全体の実行時間を一つのグラフに表示することができます。
ただ、サイズを100,100にしても小さすぎて判別できない上に、一回のpdf化に30分以上かかることもあって調整はあきらめました。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?