概要
Solrサーバーを複数台使って分散冗長構成を組んだ時のメモです。
SolrCloudという機能でこの構成を組むことが出来ました。
環境
バージョン関係
OS | CentOS 7.1.1503 |
---|---|
Solr | 5.2.1 |
Zookeeper | 3.4.6 |
Solrサーバー
solr01.example.com solr02.example.com
この2台で分散冗長構成を組みます。
Zookeeperサーバー
zk01.example.com zk02.example.com zk03.example.com
Zookeeperサーバーは事前に構築済と想定します。
設定
デーモンの起動オプション
/usr/lib/systemd/system/solr.service
デーモンの起動オプションはこのファイルで設定します。
基本デフォルトのままで大丈夫です。
ExecStart=/var/lib/solr/bin/solr start -noprompt -c -h ${SOLR_HOSTNAME} -p ${SOLR_PORT} -z ${SOLR_ZK_STRING} -m ${SOLR_MEMORY} -a "${SOLR_JVM_OPTS}"
Zookeeperサーバー指定
/etc/sysconfig/solr
SolrCloudで使うZookeeperサーバーを指定してください。
Solrサーバー全台でこの設定を行います。
SOLR_ZK_STRING="127.0.0.1:2181"
↓
SOLR_ZK_STRING="zk01.example.com:2181,zk02.example.com:2181,zk03.example.com:2181"
デーモン起動
設定は以上です。デーモンを起動してください。
systemctl start solr
Solr管理画面
http://solr01.example.com:8139
http://solr02.example.com:8139
で管理画面にアクセスが出来ます。
SolrCloudモードで起動すると管理画面に『Cloud』というメニューが出てきます。
Solr通常モード
SolrCloudモード
コレクション作成
コレクションを作成します。
今回の例ではシャードやレプリカ数は以下を指定しています。
コレクション名 | sample |
---|---|
シャード数 | 3 |
レプリカ数 | 2 |
コレクション作成のコマンド
※このコマンドはSolrサーバーの内いずれか1台で実行すればOKです。
/var/lib/solr/bin/solr create -c sample -shards 3 -replicationFactor 2
表示例
[root@solr01 solr]# /var/lib/solr/bin/solr create -c sample -shards 3 -replicationFactor 2 Connecting to ZooKeeper at zk01.example.com:2181,zk02.example.com:2181,zk03.example.com:2181 Re-using existing configuration directory sample Creating new collection 'sample' using command: http://solr01.example.com:8983/solr/admin/collections?action=CREATE&name=sample&numShards=3&replicationFactor=2&maxShardsPerNode=3&collection.configName=sample { "responseHeader":{ "status":0, "QTime":4632}, "success":{"":{ "responseHeader":{ "status":0, "QTime":4409}, "core":"sample_shard3_replica1"}}} [root@solr01 solr]#
solr01で
/var/lib/solr/server/solr/
以下に
sample_shard1_replica2 sample_shard2_replica2 sample_shard3_replica2
上記ディレクトリが作成されます。
solr02では
/var/lib/solr/server/solr/
以下に
sample_shard1_replica1 sample_shard2_replica1 sample_shard3_replica1
上記ディレクトリが作成されます。
Solr管理画面にコレクションの情報が表示されます。
Zookeeperサーバー
Zookeeperサーバーで値がどう入ってくるのか確認したメモです。
solrサーバー起動前
[zk: localhost:2181(CONNECTED) 1] ls / [zookeeper]
solrサーバー起動後
[zk: localhost:2181(CONNECTED) 2] ls / [zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections] [zk: localhost:2181(CONNECTED) 3]
コレクション作成後
[zk: localhost:2181(CONNECTED) 3] ls / [configs, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections] [zk: localhost:2181(CONNECTED) 4]