1. 程式人生 > >linux集群下 solr集群搭建

linux集群下 solr集群搭建

shard 內容 配置 器) 架構 mage -s ava com

首先介紹一下系統架構:

技術分享

* 這個圖中代表的是三個solr實例,每個實例包括兩個core,組成一個solrcloud

* 索引集合包括兩個 shard(shard1和shard2),shard1和shard2分別由三個core組成,其中一個L eader兩個Replication,Leader是由zookeeper選舉產生,zookeeper控制每個shard上三個core的索引數據一致,解決高可用和高並發問題.

* Collection在solrcloud集群中是一個索引結構,被劃分為一個或多個shard(分片),shard之前使用相同的配置;比如對於商品信息搜索可以創建一個collection,collection=shard1+shard2+.....+shardX

* Core提供索引和搜索服務,一個shard需要由一個或多個core組成,由於collection由多個shard組成,所以collection一般由多個core組成

* Master是master-slave結構中的主結點(通常說主服務器),Slave是master-slave結構中的從結點(通常說從服務器或備服務器)。同一個Shard下master和slave存儲的數據是一致的,這是為了達到高可用目的。

下面這張圖就是接下來要搭建的solr集群架構

技術分享

需要實現zookeeper 高可用。需要搭建集群。建議是奇數節點。需要三個zookeeper服務器。

搭建solr集群需要7臺服務器。

搭建偽分布式:需要三個zookeeper節點,需要四個tomcat節點.

環境 準備:

1.JDK

2.tomcat

3.zookeeper

4.solr

下面開始講集群的詳細步驟

這裏省略jdk的安裝,tomcat,solr,zookeeper的解壓

*復制三份zookeeper解壓後的文件到/usr/local/solr-cloud下

技術分享

*在每一個zookeeper下創建一個data目錄

技術分享

*在每個zookeeper的data目錄下創建一個myid文件,內容是每個實例的ID,分別為1,2.3

技術分享

*把conf目錄下的zoo_sample.cfg文件改名為zoo.cfg

技術分享

* 修改zoo.cfg配置文件

技術分享

dataDir就指向當前zookeeper的data目錄

clientPort保證zookeeper之間不沖突

最後server.1=xxx的地方就是創建的myid文件指向的id

*創建快捷啟動方式,名為start-zookeeper-all.sh,啟動每一個zookeeper

技術分享

在啟動之前先修改啟動文件的權限

技術分享

*創建四個tomcat實例,每個tomcat運行在不同的端口:8180、8280、8380、8480

技術分享

修改tomcat的端口號

技術分享

修改端口號(一共三個地方)

技術分享

技術分享

技術分享

每個tomcat都要改

*部署solr的war包到每個tomcat的webapps下面(我用的是solr的文件夾,tomcat啟動後解壓的solr.war文件)

技術分享

為每個solr實例創建solrhome,solrhome的來源參考(linux部署solr)

技術分享

*把solrhome關聯起來

修改solrhome裏面的solr.xml文件

技術分享

host代表當前節點

hostpart代表這個solrhome對應的tomcat的端口號

*關聯每一個solr和solrhome

修改每一個tomcat下solr項目裏面的web.xml

技術分享

將solrhome關聯

技術分享

*zookeeper集中管理配置文件,所以這一步是上傳配置文件

進入解壓的solr.tar.gz文件夾找到zkcli.sh文件

技術分享

使用工具上傳配置文件

執行下面的命令:

./zkcli.sh -zkhost 192.168.25.133:2181,192.168.25.133:2182,192.168.25.133:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

然後在zookeeper01裏面的bin目錄下有zkCli.sh文件,啟動這個文件,輸入一下命令可以看到

技術分享

那個就是我們剛剛上傳的文件

*接下來就關聯solr和zookeeper的關系

修改tomcat01下面的 catalina.sh

加入初始化配置:

技術分享

四個tomcat都要加

*啟動這個四個tomcat,保證zookeeper集群是啟動狀態

編寫一個啟動tomcat的程序

技術分享

修改查詢權限

技術分享

啟動tomcat:

技術分享

在瀏覽器中訪問報錯:

HTTP Status 503 - Server is shutting down or failed to initialize

發現是catalina.sh中的初始化參數配置出錯了,

修改:

JAVA_OPTS="-DzkHost=192.168.25.133:2181,192.168.25.133:2182,192.168.25.133:2183"

重新啟動,訪問:

技術分享

看見這個就代表成功了一半了

因為collection1是單片的,沒有我們所說的高用性,所以刪除這個,創建新的Collection進行分片處理。

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

第十一步:刪除不用的Collection。

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

這是沒刪除之前技術分享

這才代表成功

技術分享

linux集群下 solr集群搭建