天天看點

搭建Solr叢集的推薦方案

  之前介紹過2篇SolrCloud的部署流程,第一個是使用安裝腳本的方式進行抽取安裝,啟動比較友善,但是會建立多個目錄,感覺比較亂;第二個是官方教程上提供的方法,使用比較簡單,直接釋放壓縮包即可,并且啟動cloud執行個體的時候預設會建立一個示例collection;實際上官方文檔在solr啟動腳本配置檔案solr.in.sh介紹時,也提供了一種思路,就是我們使用第一種方法中的配置參數,綜合第二種方法的釋放簡單的優點,這裡總結了一個比較靈活簡單solr生産部署方式,在生産中配置也較為清晰,也是不斷實踐的結果,希望能對大家有所幫助

  首先還是保證zookeeper服務的配置運作無誤,這裡叢集用了6台CentOS 7.1的伺服器,分别是:linux1、linux2、linux3、linux4、linux5、linux6

  然後和之前一樣,還是下載下傳安裝包solr-5.3.1.tgz,我們預定的solr安裝位置是:/usr/solr/solr-5.3.1,接下來在linux1上執行釋放:

mkdir /usr/solr
tar -xvzf solr-5.3.1.tgz
mv solr-5.3.1 /usr/solr      

  現在solr釋放完畢,然後執行 cd /usr/solr/solr-5.3.1 進入solr目錄下,然後執行 vim bin/solr.in.sh ,和之前一樣去掉SOLR_JAVA_MEM前面的#,設定為3G,不要太小,保證solr JVM和GC的運作

  

搭建Solr叢集的推薦方案

  然後最重要的一步就是設定ZK_HOST,設定為:ZK_HOST="linux1:2181,linux2:2181,linux3:2181,linux4:2181,linux5:2181,linux6:2181/solr"

  實際生産中,solr檔案最好放在zookeeper下的一個子節點中,便于管理,之前都是直接堆在根目錄下,實際運作沒有影響,之前的在配置中也可以靈活設定,/solr節點待會會詳細說明如何建立

  

搭建Solr叢集的推薦方案

  之前還配置了一個SOLR_HOST,這個預設是本地和配置本地主機名效果一樣,這裡就不配置這一項了,以上2項足夠了,配置好之後,儲存并退出

  現在不要着急去啟動solr,如果啟動的話肯定是會出錯了,因為我們zookeeper上的節點/solr還沒有建立,之前我們讨論過zookeeper服務的管理操作,建立個節點也是很簡單的,我們zookeeper的安裝位置是:/usr/zookeeper/zookeeper-3.4.6,執行下面指令登入zookeeper服務:

/usr/zookeeper/zookeeper-3.4.6/bin/zkCli.sh -server localhost:2181      

  然後就和之前所說一樣進入了管理的界面

  

搭建Solr叢集的推薦方案

  我們執行 ls / 檢視根目錄下的節點清單,發現隻有zookeeper節點,接下來我們執行 create /solr null 建立solr節點,字元串設定為null即可,當然自己可以定義,現在通過 ls / 就可以檢視到solr節點了

  

搭建Solr叢集的推薦方案

  現在執行 quit 退出zookeeper

  現在在linux1上solr就配置完畢了,現在我們依次執行下面指令或者寫成腳本将配置好的solr目錄發送到其他5台伺服器:

scp -r /usr/solr linux2:/usr/
scp -r /usr/solr linux3:/usr/
scp -r /usr/solr linux4:/usr/
scp -r /usr/solr linux5:/usr/
scp -r /usr/solr linux6:/usr/      

  發送完畢以後,在6台伺服器的solr安裝目錄下,也就是/usr/solr/solr-5.3.1下分别執行solr啟動指令:

bin/solr start      

  啟動時,solr會讀取配置檔案進而使用zookeeper服務進行協調,全部執行完畢,solrcloud就運作起來了,現在是一個純淨的叢集,沒有任何配置和資料,接下來我們在其中一台伺服器上執行下面指令上傳配置檔案,方法和之前一樣:

./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181/solr -cmd upconfig -confdir server/solr/configsets/sample_techproducts_configs/conf -confname my_config      

  有一點需要注意,那就是-zkhost指定zookeeper伺服器時需要加上/solr節點,執行完畢就上傳好了配置檔案,接下來通過curl或者直接通路浏覽器來建立collection:

curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=my_collection&numShards=6&replicationFactor=1&collection.configName=my_config"      

  如果使用浏覽器需要将localhost換成ip位址才可以;稍等一下指令執行完畢,6個shard的collection就建立成功了

  

搭建Solr叢集的推薦方案

  另外,通過solr管理首頁可以檢視JVM的資源占用和各種配置的對應項,友善去分析

  以上就是我個人推薦的solr叢集搭建方案,過程比較簡單,到這裡就ok了

繼續閱讀