转载请注明出处:http://www.cnblogs.com/wubdut/p/7573738.html
一、集群搭建
1. zookeeper搭建(版本:3.4)
1.1 zoo.cfg配置文件:
dataDir=/usr/share/zookeeper/data/
clientPort=2181
server.1=10.0.67.31:2881:3881
server.2=10.0.67.32:2881:3881
server.3=10.0.67.33:2881:3881
1.2 dataDir=/usr/share/zookeeper/data/目录下新建myid文件,写入x(注:server.x中,x值与dataDir中的myid中的值对应)。
1.3 启动
./zkServer.sh start #启动,要从server.1开始启动
./zkServer.sh status #查看状态:Leader或者是Follower
./zkServer.sh stop #停止
2. SolrCloud搭建(版本:6.6(JDK8)):
2.1 生成cloud文件(每个服务节点都执行相同操作)
运行 $ bin/solr -e cloud -noprompt # 在example中生成cloud文件夹
运行 $ bin/solr stop -all # 停止所有solr节点
2.2 启动SolrCloud(每个服务节点都执行相同操作)
$ bin/solr start -force -cloud -s example/cloud/node1/solr -p 8983 -z 10.0.67.31:2181,10.0.67.32:2181,10.0.67.33:2181
$ bin/solr start -force -cloud -s example/cloud/node2/solr -p 7574 -z 10.0.67.31:2181,10.0.67.32:2181,10.0.67.33:2181
2.3 创建collection
$ bin/solr create -force -c mycollection -d data_driven_schema_configs -s 4 -rf 2 # 4个shard,2个副本
2.4 删除collection
http://192.168.2.68:8983/solr/admin/collections?action=DELETE&name=collectionname # 删除collection
二、稳定性测试(测试过程中,一直在推送数据):
1. SolrCloud的分片leader转移、恢复测试:
通过关闭分片leader,测试是否副本会继承为leader。重启关闭结点,是否成功恢复。
成功完成此项测试。
2. 关闭SolrCloud重启测试:
关闭所有solr节点。重启后,shard2,3,4立即恢复,shard1的两个节点都down了,等待一段时间后,恢复正常。
成功完成此项测试。
3. 关闭zookeeper(3个节点),重启测试:
关闭leader,leader成功转移,服务正常。再关闭一个zookeeper,服务停止。
启动关闭的两个节点后,正常推送数据。
成功完成此项测试。
三、节点监控策略:
定时向各solr节点端口发送查询请求,判断节点是否正常(即,是否Gone)。如果Gone,远程调用执行:
$ bin/solr restart -force -cloud -s example/cloud/node1/solr -p 8983 -z 10.0.67.31:2181,10.0.67.32:2181,10.0.67.33:2181
附录:搭建中的问题
1. 启动后存在无用的collection:
通过zkcli删除zookeeper服务其中的collections下的对应目录。
2. 无法创建新collection,报不能加载配置或者配置不存在:
删除clusterstate.json中的对应项。可通过接口删除。