solr(六): 集羣

前言

  隨着用戶的增多,空間和併發量愈來愈多,會致使一臺solr服務器幹不過了。這時候,就須要將solr集羣如下。html

集羣架構   

 

由多臺服務器共同完成索引和搜索任務 java

實現的思路是將索引數據進行shard(分片) 拆分,每一個分片由多臺的服務器共同完成。web

當一個索引或搜索請求過來時會分別從不一樣的shard的服務器中操做索引。 apache

solrCloud須要 solr基於zookeeper部署,zookeeper是一個集羣管理軟件,solrCloud須要由多臺服務器組成。由zookeeper來進行協調管理 ,多個分片相加起來纔是一個完成的索引庫  vim

 

 

zookeeper的集羣:

  見 zookeeper集羣瀏覽器

Solr集羣搭建

一. 拷貝tomcat和solrhometomcat

新建文件夾 solr-cloud。將以前solr單機版中的tomcat,solrhome拷貝到solr-cloud文件夾中。服務器

 

二. tomcat修改架構

1.端口修改併發

在solr-cloud文件夾中, 執行如下命令:

vim ./tomcat1/conf/server.xml 

查詢並修改其中的三個port:

1).

 2).

3).

其餘的tomcat分別修改port的第二個數值爲相應數值便可,

如:8280/8209/8205,8380/8309/8305,8480/8409/8405。

2. web.xml 修改

分別修改 webapps/solr/WEB-INF/web.xml文件 - 將solrhome和solr關聯起來

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/java/solr-cloud/solrhome1</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

tomcat2 -> /usr/java/solr-cloud/solrhome2

tomcat3 -> /usr/java/solr-cloud/solrhome3

tomcat4 -> /usr/java/solr-cloud/solrhome4

3. catalina.sh修改

經過修改這裏的JAVA_OPTS將tomcat和zookeeper關聯起來。

分別修改tomcat/bin/catalina.sh文件

加入:

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

 

三. solrhome修改

1. solrhome1下面的solr.xml文件修改

host爲對應tomcat1部署的電腦ip,hostport爲tomcat1修改後的端口號。

solrhome2(192.168.0.102, 8280)

solrhome3(192.168.0.102, 8380)

solrhome4(192.168.0.102, 8480)

 

2. 上傳solrhome/core1/conf目錄

將conf目錄上傳到zookeeper中,由zookeeper統一管理配置文件。只須要上傳任意一個solrhome中的配置就能夠了。

切換到以前solr解壓的目錄中:/usr/java/solr/solr-6.6.2/server/scripts/cloud-scripts

執行如下命令:

./zkcli.sh -zkhost 192.168.0.102:2181,192.168.0.102:2182,192.168.0.102:2183 -cmd upconfig -confdir /usr/java/solr-cloud/solrhome1/core1/conf -confname myconf

執行完此命令後,能夠進入zookeeper目錄中驗證一下是否成功。

在zookeeper1/bin目錄下執行 ./zkCli.sh 命令查看zookeeper上的配置文件信息

 

四. 啓動tomcat

新建一個文件,來一鍵啓動tomcat。

vim start-tomcat.sh

修改文件權限

chmod u+x start-tomcat.sh

而後執行 ./start-tomcat.sh 命令。

從這裏並不能直觀看到是否真的起來了。能夠經過查看日誌的方式,或者經過訪問的方式。

tail -f /usr/java/solr-cloud/tomcat1/logs/catalina.out

OK, 到這裏,終於能看到頁面了。在瀏覽器中打開:http://localhost:8180/solr/index.html#/

菜單上多出來了一個cloud目錄。

 

五.分片

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

在瀏覽器中直接訪問以上地址.

若是報 org.apache.solr.handler.dataimport.DataImportHandler 錯誤, 則將 dataimport的jar包拷貝一份到tomcat/webapps/solr/WEB-INF/lib 中去.

這時候, 再刷新solr/index.html頁面看看

你會發現,在core1下面,又多出一個core, 且是分片的. 之前只有一個主solr, 如今有兩個主solr了.

core1如今咱們不須要了, 能夠刪除掉. 那怎麼刪呢?

http://127.0.0.1:8180/solr/admin/collections?action=DELETE&name=core1

也是經過瀏覽器直接訪問的方式.

再來看看index.html頁面

 

 core1被刪除了.

相關文章
相關標籤/搜索