solr部署在tomcat下,solr集群依賴tomcat集群和zookeeper集群;
zookeeper:1.對象注冊和發放中心,實現異步調用。
2.配置中心。(solrConfig.xml,schame.xml)
linux下配置solrCloud:
環境准備:
1.zookeeper集群配置:mv zoo_sample.cfg zoo.cfg
修改其配置:
交互地址
zookeeper目錄下創建目錄data和log,data內創建文件myid,內容為server編號;
啟動:./zookeeper7/bin/zkServer.sh start
重啟:./zookeeper7/bin/zkServer.sh restart
停止:./zookeeper7/bin/zkServer.sh stop
查看狀態:
tomcat集群配置:
配置每個tomcat的catalina.sh,
配置每個tomcat的server.xml,
配置每個solr倉庫的solr.xml,
把倉庫核心配置上傳到zookeeper注冊中心(上傳任意一個即可):
/home/hadoop/singleSolr/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.74.132:2187,192.168.74.132:2188,192.168.74.132:2189 -cmd upconfig -confdir /home/hadoop/clusterSolr/solr1/item/conf -confname myconf
登錄zookeeper查看上傳的配置文件:
/home/hadoop/clusterSolr/zookeeper9/bin/zkCli.sh -server 192.168.74.132:2187
/home/hadoop/clusterSolr/zookeeper9/bin/zkCli.sh -server 192.168.74.132:2188
/home/hadoop/clusterSolr/zookeeper9/bin/zkCli.sh -server 192.168.74.132:2189
ls /configs/myconf
啟動4台tomcat服務:sh tomcat1/bin/startup.sh
solr頁面查看:
集群分片:
登錄zookeeper集群:
命令:./zkCli.sh -server 192.168.66.66:2182
solr集群分片命令:
http://192.168.74.132:8081/solr/admin/collections? action=CREATE&name=products&numShards=2&replicationFactor=2&maxShardsPerNode=8&property.schema=schema.xml&property.config=solrconfig.xml
刪除舊solrCloud集群分片:
http://192.168.66.66:9000/solr/admin/collections?action=DELETE&name=item
(模擬多台服務器)
在solr.xml中配置集群對象:
<!-- 把集群對象交給spirng管理 -->
<bean class="org.apache.solr.client.solrj.impl.CloudSolrServer">
<constructor-arg name="zkHost"
value="192.168.66.66:2182,192.168.66.66:2183,192.168.66.66:2184"></constructor-arg>
<property name="defaultCollection" value="item"></property>
</bean>
在搜索的dao中注入集群進行搜索: