2010年06月24日

cassandra(悲劇の預言者)をWindowsで使ってみる。

 あれです。
 現在テストで1300万を超えるレコードを一括処理する必要が出てきています。
 集計作業をするにしてもデータベースに入れようものならデータベースから1分経っても反応が返ってこなくなります……。
 できればこれをリアルタイムで集計したいのです。使える環境は4年前現役だったノートパソコン1台。これがお金を取る仕事だったら断っていますが、空いた時間にやる投資的なお仕事なので、超時間を掛けてやってみようと思います。

 まずはMySQLの1テーブルに突っ込んでみました。
 ……phpMyAdminが応答がなくなり、最終的にはタイムアウトエラーを吐く様になりました。
 タイムアウトしないようにすればいいのですが、1分以上待つような処理も嫌だなと考え、その案は保留にいたします。
 
 次はMySQLに1万テーブルぐらいに分けて登録してみました。
 テーブル名を表示する時点でタイムアウトエラーを吐くようになりました。もっと酷くなったw

 ここまででRDBでは無理な問題だと気がつきます。
 というか、別段RDBである必要はどこにもありません。1レコードに登録された列ごとの関係を集計できればいいだけなので、SQLも極単純な集計しかしません。
 JOINなんか一切必要ないです。

 これが1ヶ月ほど前のことです。
 で、調べていくうちにGoogleのBigTableというのに行き当たり、その技術や思考に感心しながら「これならできるんじゃね?」的な感触を受けました。
 でも、BigTableは一般のヒトは使えない。GAEを使えばいいのですが、Giga級のデータを転送することを考えると費用が嵩みそうです。
 
 自前で作ろうかどうか考えていると、オープンソースのBigTableがすでに使える状態にあることがわかりました!
 それがApacheのトップレベルプロジェクト【cassandra】だったわけですね!
 
 
 さて、環境はWindowsなので、それで設定する方法を探しました。
 先人がすでにやってくれてましたので、参考にします。
 
Windows で Cassandra を動かしてみる
 
 この手順のうち、

「コマンドプロンプトより Cassandra を展開したディレクトリに移動し、「bin/cassandra.bat」を実行します。」

 ではやくもエラー。

「JAVA_HOME environment variable must be set!」

 設定しないとダメだそうです。

JAVA_HOMEの設定

 を見て設定しました。

 再度「bin/cassandra.bat」を起動すると動きました!
 同様にしてクライアントも起動すると動作しているようです。
 
 コマンドも無事通りました。
 cassandraの設定は完了のようです。
 設定で色々苦労すると思っていただけにこのセットアップの簡単さはいいですね。流石トップレベルプロジェクトです。plaggerもこれぐらいに便利になればいいのに!

trackbacks

trackbackURL:

comments

comment form

(LICALD にはじめてコメントされる場合、不適切なコメントを防止するため、掲載前に管理者が内容を確認しています。適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

comment form