今回は前回までの流れとは少し違いますが、
Twitter Stormをデバッグする方法について書きます。
というのも、HadoopやStorm系の分散プラットフォーム上でシステムを開発する場合、
処理がどこを飛び交うかが非常に難解です。
なので、開発時点で出来る限り問題を潰しておきたい・・・という事情があります。
そんなわけで、Twitter Stormでデバッグができるのかを試してみようというわけです。
・・・尚、途中でマシンがしばらくお亡くなりになっていたので、
Stormのバージョンは現行の最新の0.6.1ではなく、0.6.0になっています。ご了承ください。
1.どんな環境でデバッグを行うの?
今回デバッグを目指すのは、
Windowsのローカルクラスタ環境(下記)とします。
本来であればStormはNimbusという管理サーバを含んだ分散クラスタ上で動作します。
ですが、それを縮退した構成でまずは確認してみよう、というわけです。
なお、Storm開発者のnathanさん曰く、
「Stormの分散構成をWindows上で構築するのは目的としていない。
但し、LinuxのStormクラスタに対して
トポロジを設定することはWindowsからもできるようにしたい。(既に実現済)」
なので、Windows上で行う今回の試みはあくまでローカルクラスタ限定です。
また、ローカルクラスタ用であってもThriftを用いたトポロジ初期化を伴う
DRPCTopologyなども使えません。
#Windows用のThriftライブラリをビルドすればいいのですが、それはまた別の回に。
2.ローカルデバッグのための環境構築
では、環境構築に入ります。
といっても分散環境ではないため、やることは非常にシンプルです。
下記の3つで終わります。
- storm-starterプロジェクトをダウンロード
- 依存ライブラリをダウンロード
- Storm-0.6.0.zipをダウンロードして展開
3.Storm-Starterプロジェクトをダウンロード
まずは下記のコマンドを実行して、Storm利用のサンプルとして公開されている
Storm-Starterプロジェクトをダウンロードします。
> git clone https://github.com/nathanmarz/storm-starter storm-starter
尚、gitがインストールされていない場合、
Windows用Gitバイナリのmsysgitをインストールして、
【インストール先のbinディレクトリ】にパスを通せばOKです。
ダウンロードが終わったら、storm-starterプロジェクト配下の「src/jvm」ディレクトリ配下の
ソースコードをEclipseプロジェクトのソースフォルダにコピーします。
下記のようになりますね。
4.依存ライブラリをダウンロード
次は、storm-starterプロジェクトの依存ライブラリをダウンロードします。
storm-starterプロジェクト配下の「project.clj」をみると、下記の内容になっています。
■project.clj
(defproject storm-starter "0.0.1-SNAPSHOT" :source-path "src/clj" :java-source-path "src/jvm" :javac-options {:debug "true" :fork "true"} :resources-path "multilang" :aot :all :jvm-opts ["-Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib"] :repositories { "twitter4j" "http://twitter4j.org/maven2" } :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [org.twitter4j/twitter4j-core "2.2.5-SNAPSHOT"] [org.twitter4j/twitter4j-stream "2.2.5-SNAPSHOT"] ] :dev-dependencies [[storm "0.6.0"] ])
なので、clojure/clojure-contrib/twitter4j-core/twitter4j-streamを
依存ライブラリとしてダウンロードします。
clojure/clojure-contribはClojureのページから、
twitter4j-core/twitter4j-streamはTwitter4Jのページからダウンロードします。
尚、Twitter4jについては2.2.5-SNAPSHOTがすでに正式版になっているため、
2.2.5のバージョンをダウンロードすればOKです。
上記の2ページから下記のライブラリをダウンロードして、ビルドパスに追加します。
5.Storm-0.6.0.zipをダウンロードして展開
次はStorm自体をダウンロードします。
Storm-0.6.0.zipをダウンロードして展開し、
下記のファイルをstorm-starterプロジェクトのビルドパスに追加します。
- storm-0.6.0.jar
- libディレクトリ配下のファイル(storm-starterとかぶる場合はstorm-starterを優先)
下記のようになり、ビルドが通ればデバッグの準備は完了です。
次回は実際に動かしながら説明を行いますね。