Redstormを使うと、stormの処理をrubyで書くことができます。
Redstormの詳しいことはProjectのページを読んでみてください。

stormはJavaで処理を書くことができますが、Redstormを使うとrubyでtopologyやboltを書くことができます。

準備

redstorm-0.5.0はstorm-0.7.1まで対応しているということなので、storm-0.7.1を入れて使えるようpathを通しておきます。

クラスタ環境で動かす場合の、stormのセットアップは以下を参照してください。 stormのcluster環境のセットアップ(centos) | tjun memo
stormのcluster環境のセットアップ& storm UIを試す (後編1: 1台で全て動かす) | tjun memo

今回のようにとりあえずlocalで動かす場合はJavaとStormにPathが通っていればいいと思います。

$ wget https://github.com/downloads/nathanmarz/storm/storm-0.7.1.zip --no-check-certificate
$ unzip storm-0.7.1.zip
$ sudo cp -R storm-0.7.1 /usr/local/
$ export STORM_HOME=/usr/local/storm-0.7.1
$ export PATH=$PATH:$STORM_HOME/bin

Javaとantも必要です。
Javaは Ubuntu 12.04にSunというかOracleのJDK 7をインストールした話 - ナントカ嬢 を参考に、JDK6を入れています。
JAVA_HOMEも設定してください。
antはとりあえず

$ sudo aptitude install ant
で入れました。

JRubyのインストール

まずJRubyを入れます。 rvmを入れておいて、rvmから入れるのがいいんじゃないかと思います。 RedstormのページにJRuby1.6.7で動作確認してあると書いてあったので、JRubyのバージョンは1.6.7にしました。
$ rvm install jruby-1.6.7
$ rvm use jruby-1.6.7

Redstormのインストール

$ gem install redstorm
今回はredstorm-0.5.0が入りました。

Redstormを動かす

とりあえず作業用ディレクトリを作ります。
$ mkdir redtest
$ cd redtest

Redstormプロジェクトをセットアップ

$ redstorm --1.9 install

これで、target というディレクトリができます。 この --1.9 というのはrubyのバージョンを指定しているそうです。

サンプルのセットアップ

$ redstorm examples

これでexamplesというディレクトリができます。

サンプルの実行

とりあえずexamples/simple/wordcounttopology.rbをlocalで実行してみます。

$ redstorm --1.9 local examples/simple/word_count_topology.rb

これで、特にエラーが出ずに出力されれば成功です。 オリジナルのstormに比べると、出力されるまでに少し時間がかかるような気がします。

処理が実行されるまでのオーバヘッドが大きくなったり、Storm本体の開発からちょっと遅れちゃうけど、rubyで書けるのはいいなと思いました。

例えばwordcountbolt.rbは、 redstorm/examples/simple/wordcountbolt.rb at master · colinsurprenant/redstorm · GitHub のように書けます。spoutもtopologyもrubyで書けます。

クラスタでの実行は試していません。