Solrcloud介紹:web
SolrCloud(solr集羣)是Solr提供的分佈式搜索方案。tomcat
當你須要大規模,容錯,分佈式索引和檢索能力時使用SolrCloud。服務器
當索引量很大,搜索請求併發很高時,一樣須要使用SolrCloud來知足這些需求。併發
不過當一個系統的索引數據量少的時候是沒有必要使用SolrCloud的。app
SolrCloud是基於Solr和Zookeeper的分佈式搜索方案。它的主要思想是使用Zookeeper做爲SolrCloud集羣的配置信息中心,統一管理solrcloud的配置,好比solrconfig.xml和schema.xml。負載均衡
Solrcloud特色功能:webapp
1)集中式的配置信息分佈式
2)自動容錯大數據
3)近實時搜索spa
4)查詢時自動負載均衡
Solrcloud的結構:
solrcloud爲了下降單機的處理壓力,須要由多臺服務器共同來完成索引和搜索任務。實現的思路是將索引數據進行Shard分片,每一個分片由多臺服務器共同完成,當一個索引或搜索請求過來時會分別從不一樣的Shard的服務器中操做索引。solrcloud是基於solr和zookeeper部署,zookeeper是一個集羣管理軟件,solrcloud須要由多臺solr服務器組成,而後由zookeeper來進行協調管理。
因爲solrcloud通常都是解決大數據量、大併發的搜索服務,因此搭建solrcloud以前,首先須要搭建zookeeper註冊中心集羣。
1)、搭建zookeeper集羣步驟:須要三臺zookeeper、分別是zk一、zk二、zk3,對應的端口分別爲228一、228二、2283。
第一步:安裝jdk環境,由於zookeeper是使用Java語言編寫的;
第二步:準備zookeeper-3.4.6.tar.gz壓縮包,解壓並修改目錄名稱爲zk1
第三步:進入zk1/conf目錄,將zoo_sample.cfg文件名稱改成zoo.cfg
第四步:修改zoo.cfg文件,配置集羣信息(倆個截圖信息都是配置在zoo.cfg文件中)
第五步:在dataDir(對應zoo.cfg配置文件中的目錄結構)目錄下建立myid文件,文件內容爲1,對應server.1中的1。
第六步:拷貝zk1,複製兩個目錄zk二、zk3。並修改zoo.cfg和myid兩個文件。
第七步:編寫倆個腳本文件,分別啓動zookeeper集羣和查看集羣中各個服務的狀態。
2)、搭建solrcloud集羣步驟:
第一步:複製4個單機版solr服務對應的tomcat,並分別修改端口爲:8280、8380、8480、8580。
第二步:複製4個solrhome,分別爲solrhome8280、solrhome8380、solrhome8480、solrhome8580。一個solr實例對應一個solrhome。
第三步:修改每一個solr服務對應的Tomcat容器中solr項目的web.xml文件中的內容(目錄結構爲/usr/local/solrcloud/tomcat8280/webapps/solr/WEB-INF)
第四步:修改每一個solrhome下的solr.xml,指定對應solr服務的tomcat的ip和端口。
第五步:設置tomcat的啓動參數,在每一個tomcat目錄下的bin/catalina.sh,添加如下內容:
第六步:將solr配置文件上傳到zookeeper中,進行統一管理,進入到/root/soft/solr-4.10.3/example/scripts/cloud-scripts目錄中執行zkcli.sh命令:
./zkcli.sh -zkhost 192.168.136.135:2281,192.168.136.135:2282,192.168.136.135:2283 -cmd upconfig -confdir /usr/local/solrcloud/solrhome8280/collection1/conf -confname myconf(每一個ip地址之間用逗號分隔)
第七步:編寫腳本文件啓動全部的solr服務
第八步:訪問部署的solr集羣中任意的端口服務
第九步:solrcloud搭建完畢。