Asakusa FrameworkでM3BPを使うAsakusa on M3BPが使えるようになってから、バッチがすごく速くなった(笑)
(どれくらい速くなったのかは、Scala関西Summit 2016で言及するつもり…Scalaじゃないけど(爆))
で、今使っているM3BPマシンはCPUが数十コア・メモリーが数百GBあるんだけど、ほとんどのバッチは100GBもメモリーを使わないので、1台のM3BPマシン上で複数のバッチを同時に(並列で)実行したい。
一部のバッチはM3BPマシンの半分くらいのメモリーを使用するが、2並列なら問題ない。
しかし一律2並列にすると、ほとんどのバッチは最低でも4並列くらいいけるのに勿体ない。
また、今はM3BPマシンが1台だけだけど、複数台になったら、空いているマシンを探してそこでバッチを実行するような仕組みがあると嬉しい。
というわけで、そういった制御をしてくれるのがRetz。ジョブをキューイングして実行するツール。
クラスター(複数サーバー)のリソースを管理し、ジョブ実行に必要なリソースが空いているマシン上でジョブを実行してくれる。(リソース管理にはApache Mesosを使っている)
(リソースに関するジョブスケジューリングと呼べるかもしれないが、普通ジョブスケジューラーと言ったらジョブを時刻起動させるツールというイメージなので、それとは違う)
今はまだRetzのバージョンは0.0.x、つまり0.1にもなっていないのでまだまだ変わっていくと思うけど、現時点でのインストール方法や使い方をまとめてみた。
Retz自身はAsakusaバッチ専用というわけではないので汎用的に使えるはずだけど、自分としてはAsakusaバッチで使う想定。
※コメント投稿者のブログIDはブログ作成者のみに通知されます