1. Solr4.5を動かしてみる
全文検索エンジンSolrにRDBのデータを喰わせてインデックスを作成するところまでを目標に、
Solr4のインストール〜構築を行っていきます。
1.1. まずはjavaのインストール!
RHEL系だったらyum, debian系だったらapt-getで入れてしまいましょう。
yum install -y java-1.6.0-openjdk
※上記例ではopenjdkを入れてますが、sun-javaのrpmをインストールしても大丈夫です。
1.2. Solr4をダウンロードしてみる
ダウンロードしたファイルを解凍します。
解凍してできたディレクトリの中はこんな感じになっています。
Solrのチュートリアルによれば、「exampleディレクトリの中に移動してstart.jarを実行すれば動くぜ」と言っているのでとりあえず言うとおりにしてみます。
cd ./example java -jar start.jar
ログ
ログを見ると、
- WAPの設定ファイルとしてexample/contexts/solr-jetty-context.xmlが使われる
- example/webapps/solr.warの中身がexample/solr-webapp/webappに展開される
- example/solr/collection1がcoreとして認識されている
ことがわかります。
http://localhost:8983/solr/
を開くと、solrの管理ページを確認できます。
ここで一旦solrを停止します。
^C
1.3. solrの配置
ここではsolrをoptに置くことにします。
なので、opt下にsolr-4.5.1をもってきます。
シンボリックリンクはりましょうか。
exampleはserverにします。
ln -s /opt/solr-4.5.1 /opt/solr ln -s /opt/solr-4.5.1/example /opt/solr/server
シンボリックリンク
/opt/solr/serverを見てみると
ログは/var/log/solrに出力したいので、
/opt/solr/server/logsを削除してしまいます。
rm -fR /opt/solr/server/logs
1.4. solrの自動起動スクリプト
上のexampleのままでは、solrの起動/停止のたびにjava -jar start.jarをしなくてはならないので非常にイケてません。
ログからわかるとおり、アプリケーションコンテナにはjettyが使われています。
そこで、jettyの起動スクリプトを持ってきます。
jetty-distribution-x.x.x.vxxxx.tar.gzを解凍します。
解凍してできたディレクトリ。
binの中にjetty.shがあります。
これを/etc/init.dにコピーし、実行権限を付与します。
※jetty.shはsolrにリネームしておきます。
cd ./jetty-distribution-x.x.x.vxxxx cp ./bin/jetty.sh /etc/init.d/solr chmod +x /etc/init.d/solr
solr(元jetty.sh)を開いてみると、
- /etc/default/jetty
- $HOME/.jettyrc
- /etc/jetty.conf
のいずれかをjettyの設定ファイルとして読み込むと書いてあります。
また、設定値として下のものを設定せよ、とのことなので
jettyという名前のファイルを/etc/default/に作成します。
JAVA_HOME=/etc/alternatives/java_sdk JAVA_OPTIONS="-Djava.awt.headless=true -server -XX:+UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseTLAB -XX:MaxPermSize=128m -Xms512M -Xmx1024M $JAVA_OPTIONS -Dsolr.solr.home=/opt/solr/server/solr" JETTY_HOME=/opt/solr/server JETTY_USER=root JETTY_PORT=8983 JETTY_LOGS=/var/log/solr
ここでの肝は、JAVA_OPTIONS
で
-Dsolr.solr.home=/opt/solr/server/solr
を指定していることです。
start.jarの起動時にsolrのホームディレクトリを指定できます。
JETTY_HOMEはwebアプリケーションディレクトリであり、start.jarが置いてあるところです。
1.5. ログの出力先
solr及びjettyのログ出力先を設定します。
jettyのログ出力先は、4.で/etc/default/jettyに設定しました。
solrのログ出力先は、$SOLR_HOME/resources/log4j.propertiesで指定します。
vi $SOLR_HOME/resources/log4j.properties ~ #solr.log=logs/ solr.log=/var/log/solr/ ~
1.6. jettyを起動してみる
起動できるレベルの設定系はだいたい完了したので、いったんjettyを起動してみます。
# まずはchkconfigに自動起動を登録 chkconfig jetty on # jetty起動 service jetty start # いちおうプロセスの確認 ps -ef | grep jetty
ブラウザから管理画面を開いて起動していることを確認します。