1. 程式人生 > >solr安裝(叢集版)

solr安裝(叢集版)

           solr

什麼時候搭建叢集?

當我們搜尋系統訪問量過大的時候,solr索引量過大的時候我們就需要搭建solr叢集。

怎麼搭建叢集?

在搭建叢集之前,我們需要明白幾個名詞

Collection:Collection在solr叢集中是一個邏輯上完整的索引結構,它常常被劃分為一個或多個分片(Shard),他們使用相同的配置資訊。例如對商品資訊搜尋,可以建立一個collection,collection=shard1+shard2+...+shardX

Shard:每個Shard被劃成一個或多個replication,通過選舉確定那個是leader.

Core:Core是solr中一個獨立的執行單位,提供索引,搜尋服務。一個shard需要由一個Core或多個Core組成。

Master-Slave:Master-Slave一個主從結構,master為主節點,salve是從節點,為了達到高可用,我們在同一個Shard下搭建一個master節點和salver節點,當master節點掛了,salver節點扶正。

zookeeper:zookeepr在這裡,我們用它作為叢集的管理工具它是叢集的入口,它集中管理配置檔案,實現了叢集的負載均衡,和容錯。

下面我們來看下我們要搭建的solr的架構圖

zookeeper是叢集的入口,每個collection分成兩片,每片有兩個節點,一個主一個從。

因為zookeeper有一個投票選舉,為了保證可以超過半數,所以需要三個

solr叢集分成兩片,每片有一主一備共四片,所以需要四個

我們開始搭建叢集

我們的叢集架構中需要三個zookeeper,四個solr,由於我的電腦裡裝執行不起來這麼多的虛擬機器,所以我用一臺虛擬機器來搭建一個偽分散式,也就是在一臺虛擬機器上用不同的區分不同的應用。

另外,zookeeper和solr都是java開發的,java服務比較耗記憶體所以虛擬機器記憶體建議大點。

搭建solr叢集的搭建共兩大步:1.zookeeper叢集搭建,2.solr叢集搭建

搭建zookeeper叢集

zookeeper叢集中

1.新建一個目錄存放叢集

zookeeper叢集中三個節點的搭建是一樣的,所以我只演示一個節點的搭建,另兩個省略。

命令:mkdir solr-cloud

2.把zookeeper上傳到solr-cloud裡去

我是用的是xftp5

3.解壓zookeeper

命令:tar zxf zookeeper-3.4.6.tar.gz

4.複製三份解壓後的zookeeper-3.4.6到zookeeper01中

命令:cp -r zookeeper-3.4.6 /root/art/solr-cloud/zookeeper01

5.進入zookeeper01中建立一個data目錄

命令:mkdir data

6.在data裡建立一個myid檔案

命令:touch myid

檢視一下改沒改成功

命令:cat myid

7.把conf/zoo_sample.cfg改名成zoo.cfg

命令:mv zoo_sample.cfg zoo_sample.cfg

8.修改zoo.cfg檔案,把data目錄修改成我們建立的data目錄

命令:vim zoo.cfg

這樣我們就完成了一個zookeeper的配置

剩下兩個zookeeper和這個一樣,此處省略

solr叢集搭建

三個zookeeper搭建完成,我們需要搭建四個solr

solr叢集的四個節點搭建也是一樣的,同樣我只演示一個節點的搭建。

1.把tomcat複製四份

cp -r pache-tomcat-7.0.47 /root/art/solr-cloud/tomcat01

2.把tomcat每一個的埠號改一下

命令:vim tomcat01/conf/server.xml

在這裡只給出一個tomcat修改的圖,另三個省略

3.把solr的web工程部署到這四個tomcat中

也就是把配置好的單機版的賦值到tomcat的webapps中

命令:cp -r /root/art/solr/apache-tomcat-7.0.47/webapps/solr tomcat04/webapps/

5.修改每一份solrhome的solr.xml

命令:vim solr.xml

這裡只展示一份的修改,其他四個和這個一樣

6.修改每個solr工程的web.xml,建立起每個solr和solrhome的關係

命令:vim tomcat01/webapps/solr/WEB-INF/web.xml

7.接著我們建立tomcat和zookeeper之間的關係

8.讓zookeeper管理配置檔案

使用一個工具,把隨便一個solehome中的conf檔案上傳到zookeeper中就行,我選擇了solrhome01,工具在solr/example/scripts/zkcli.sh

執行上傳檔案命令:./zkcli.sh -zkhost 192.168.2.100:2181,192.168.2.100:2182,192.168.2.100:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf

檢視是否上傳成功

先使用zookeeper的客戶端zkCli.sh連線zookeeper

他在zookeeper01/bin/zkCli.sh

開始連線

連線的時候只要連線任意一個zookeeper節點就行,不是必須連leader

連線非當前節點

檢視檔案是否上傳成功

9.啟動tomcat

給tomcat寫個批處理

命令:vim start-tomcat.sh

在檔案中遍歷四個tomcat的啟動命令

給批處理檔案改許可權

命令:chmod +x start-tomcat.sh

啟動tomcat

命令:./start-tomcat.sh

檢視日誌

10.訪問solr

192.168.2.100:8182/solr

我們的solr的叢集就搭建完成了,這個是一個主三個從,把collection1分成了一片,不是我想要的叢集

如果只想要一個分片的就不用看了

下面我演示一下建立一個collection,分成兩片,兩主,兩從

建立collection

我們需要向solr發起一個請求

http://192.168.2.100:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

順便也說一下刪除collection吧

刪除collection

http://192.168.2.100:8180/solr/admin/collections?action=DELETE&name=collection1