轉載請註明出處node
1、集羣搭建json
1. zookeeper搭建(版本:3.4)測試
1.1 zoo.cfg配置文件:rest
dataDir=/usr/share/zookeeper/data/server
clientPort=2181繼承
server.1=10.0.67.31:2881:3881接口
server.2=10.0.67.32:2881:3881io
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
2、穩定性測試(測試過程當中,一直在推送數據):
1. SolrCloud的分片leader轉移、恢復測試:
經過關閉分片leader,測試是否副本會繼承爲leader。重啓關閉結點,是否成功恢復。
成功完成此項測試。
2. 關閉SolrCloud重啓測試:
關閉全部solr節點。重啓後,shard2,3,4當即恢復,shard1的兩個節點都down了,等待一段時間後,恢復正常。
成功完成此項測試。
3. 關閉zookeeper(3個節點),重啓測試:
關閉leader,leader成功轉移,服務正常。再關閉一個zookeeper,服務中止。
啓動關閉的兩個節點後,正常推送數據。
成功完成此項測試。
3、節點監控策略:
定時向各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中的對應項。可經過接口刪除。