Solr Cloud (ver.5.5.0) ~サーバ3台~
目次
概要
作成手順
確認
概要
サーバ3台構成で、Zookeeper(3.4.8)とSolr Cloud(5.5.0)を使い、分散冗長構成の作り方をまとめます。 OSは、CentOS6.7です。
作成手順
まず、Zookeeperを用意します。 設定はこちらに記載してます。
the-casket-of-star.hatenablog.com
/opt/zookeeper/bin/zkServer.sh start まで行った前提です。
Solrの設定を行います。
こちらを参考にさせて頂きました。
Tutorial – Deploying Solrcloud 5 on Amazon EC2 | Blog of France Labs on Search technologies
cd /tmp wget http://ftp.tsukuba.wide.ad.jp/software/apache/lucene/solr/5.5.0/solr-5.5.0.tgz tar -zxvf solr-5.5.0.tgz mv /tmp/solr-5.5.0 /opt/ ln -s /opt/solr-5.5.0 /opt/solr cd /opt/solr/ vi ./bin/solr.in.sh ※変更箇所 ================================================ ZK_HOST="<Server1のIP>:2181,<Server2のIP>:2181,<Server3のIP>:2181" ZK_CLIENT_TIMEOUT="150000" SOLR_HOME=/var/solr/data SOLR_PORT=8983 SOLR_MODE=solrcloud ================================================ mkidr -p /var/solr/data chmod 777 /var/solr/data cp -ap /opt/solr/server/solr/solr.xml /var/solr/data/ vi /var/solr/data/solr.xml <str name="host"><Server1のIPを記載></str>
solrを起動します。 オプションの -cはクラウドモードで起動するのに必要です。
./bin/solr start -c Waiting up to 30 seconds to see Solr running on port 8983 [\] Started Solr server on port 8983 (pid=6299). Happy searching!
coreを作ります。
./bin/solr create -c test
※testはcore名なので、任意のcore名を指定して下さい。
ls /var/solr/data
testフォルダがあることを確認します。
間違えた時は、deleteコマンド
./bin/solr delete -c test
ブラウザで、
http://xxx.xxx.xxx.xxx:8983/solr/#/ にアクセスすると、下図のように表示されるはずです。
左側のCore Adminをクリックすると、先ほど作ったcoreがあります。
cd /opt/solr/server/scripts/cloud-scripts/ ./zkcli.sh -zkhost <Server1のIP>:2181,<Server2のIP>:2888,<Server3のIP>:2888 -cmd upconfig -confdir /opt/solr/server/solr/configsets/basic_configs/conf -confname solrconfig
上記までを、 残り2台のサーバ上で実行します。 IPアドレスは適宜変更して下さい。
ブラウザの アドレスバーで以下を実行すると、
http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=CREATE&name=test&numShards=1&replicationFactor=3&collection.configName=solrconfig&maxShardsPerNode=3
各値について
name: collectionの名前
numShards: Shardsの数
replicationFactor: shards毎のレプリケーションの数。サーバーの台数と同じ必要がある。
collection.configName: /var/solr/data/test/conf/ の中の設定ファイル。初期はsolrconfig.xml
maxShardsPerNode: NodeあたりのShardsの最大数。
以下のようなXMLが返ってきます。
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">8649</int> </lst> <lst name="success"> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7170</int> </lst> <str name="core">test_shard1_replica1</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7891</int> </lst> <str name="core">test_shard1_replica2</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">7903</int> </lst> <str name="core">test_shard1_replica3</str> </lst> </lst> </response>
確認
ブラウザで確認したら、Recoverring状態でした。
LeaderのSolrを再起動したら、全てActiveになり、再度Server1のSolrをstopしたら、leaderが変更されたのを確認しました。
各サーバーのデータディレクトリの中に、 test_shard1_replica1 test_shard1_replica2 test_shard1_replica3
がそれぞれ作られました。
データを入れた検証はまた今度。