y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

CicindelaをCentOSにインストール

CentOS5.3仮想ホスト上にレコメンドエンジンCicindelaをインストール。
http://code.google.com/p/cicindela2/wiki/Install
http://ueblog.natural-wave.com/2009/01/25/livedoor-cicindela/
http://d.hatena.ne.jp/aike/20090117
を参考に、試行錯誤しながら何とか最後まで行けた。

・ユーザ追加
 ユーザ:cicindela、グループ:cicindela、ホームディレクトリ:/home/cicicindela

・ダウンロード
cd /home
svn checkout http://cicindela2.googlecode.com/svn/trunk/ cicindela

ディレクトリの権限を変更
/home/cicinderaに対してapacheなどがアクセスできるように、権限を変更しておく。
※これをやっておかないと、ブラウザから読んだ時や、バッチの実行が失敗する

Subversionを入れる
 パッケージマネージャでSubversionを選択、インストール(subversion-1.4.2-4.el5_3.1.i386

CPANperlモジュールをインストール
perl -MCPAN -e shellでCPANを起動して
 install DBI
 install DBD::mysql
 install Ima::DBI
 install Time::Piece
 install Log::Log4perl
 install Module::Pluggable
 install Class::Singleton
 install Text::CSV_XS

・my.cnfの修正
/etc/my.cnfに/home/cicindela/etc/mysql/my.cnfの内容を転記

httpd.confの修正
/etc/httpd/conf/httpd.confに下記の記述を追加
Include /home/cicindela/etc/httpd/modperl.conf

・/home/cicindela/etc/httpd/modperl.confの修正
1行目 "LoadModule perl_module modules/mod_perl.so"をコメントアウトする
※/etc/httpd/conf.d/perl.confで一度読み込まれているため、二重起動になるため

・damontoolsのインストール
http://www.emaillab.org/djb/tools/daemontools/install.html
そのままではインストールが通らないので、daemontools-0.76/src/error.hを修正
#include  ←この一文を追加

daemontoolsを入れたら一度OS再起動する。

daemontoolsで起動するバッチの設定
sudo ln -s /home/cicindela/etc/service/cicindela_batch /service/cicindela_batch
sudo ln -s /home/cicindela/etc/service/cicindela_flush_buffers /service/cicindela_flush_buffers

・ログローテーションの設定

・サンプルデータのダウンロード
cd /home/cicindela
svn switch http://cicindela2.googlecode.com/svn/branches/demo_data/misc misc

※「svn: REPORT リクエスト(相手:'/svn/!svn/vcc/default')が失敗しました」なんていう感じで、相手サーバから切断されること数回。pingを打ちながら実行してたら出来た。pingは関係ないかもしれん)

・テーブル作成
cd /home/cicindela/misc
perl create_init_sql.pl --db_name=cicindela_clip_db | /usr/bin/mysql -uroot -pパスワード

・データインポート
cd misc/clip_data
gunzip -c ldclip_demo_dataset.csv.gz | perl importer.pl --work_dir=`pwd` | /usr/bin/mysql -uroot -pパスワード cicindela_clip_db

正常にインポートが出来ると、<>line 641902 なんていうように、「64万件をインポートしたよん」と出る

・集計を実行
bin/batch.pl --track=1 を2回実行
※そこそこ時間が掛かる。
この間、mysql.dが80%以上のCPU負荷&メモリを1GB以上も利用。batch.pl、flush_buffers.plなんかがモリモリと動く。

Webブラウザで確認
http://hostname/cicindela/recommend?op=for_item&set=clip_simple&item_id=39102
でナイスなIDが返ってくるのを確認。

やったぁ。

あとは、自分専用のデータをバキバキと入れて遊ぶだけだ。←こっちの方が実は、難所だったり。