【solr】Solr5.5.4+Zookeeper3.4.6+Tomcat8搭建SolrCloud集群


Solr5.5.4+Zookeeper3.4.6+Tomcat8搭建SolrCloud集群

  SolrCloud(solr 雲)是Solr提供的分布式搜索方案,當你需要大規模,容錯,分布式索引和檢索能力時使用 SolrCloud。當一個系統的索引數據量少的時候是不需要使用SolrCloud的,當索引量很大,搜索請求並發很高,這時需要使用SolrCloud來滿足這些需求。SolrCloud 是基於Solr和Zookeeper的分布式搜索方案,具體擁有以下幾個特色功能:

      1)集中式的配置信息
      2)自動容錯
      3)近實時搜索
      4)查詢時自動負載均衡

SolrCloud在搭建時,通過先搭建完一個Solr實例后,可以很容易地使用Zookeeper來做一個集群。我演示的安裝步驟基於一台機器,所以采用偽集群的方式進行安裝,如果是真正的生成環境,將偽集群的ip改下就可以了,步驟是一樣的。

安裝准備

  • JDK1.7以上
  • Solr5.5.4部署包(solr-5.5.4.tgz 大約130M)
  • Tomcat8部署包 (apache-tomcat-8.5.16.tar.gz)
  • zookeeper-3.4.6部署包(zookeeper-3.4.6.tar.gz)

Solr5.5.4單機部署與Tomcat8

你可以在Solr5.5.4單機部署找到如何將Solr5.5.4部署在Tomcat8環境下.

Solr5.5.4+Zookeeper3.4.6+Tomcat8集群部署

如果已經成功部署了一個Solr,那么接下來的工作也不會太難。下面的集群部署基於已經成功部署過單個Solr。如果你還沒有部署過Solr或者還沒有部署過單機版的,講義看一下Solr5.5.4單機部署里面第二部分,通過tomcat部署Solr,然后再來部署集群。

具體zookeeper集群部署我在這里就不講啦,如果不會部署zookeeper集群的可以看一下看一下zookeeper集群部署。本次部署詳情信息如下:

機器 192.168.219.11(node11),192.168.219.12(node12),192.168.219.13(node13),192.168.219.14(node14)
系統 Red Hat Enterprise Linux Server release 6.5 (Santiago)  
系統內核 2.6.32-358.el6.x86_64
solr版本 Solr-5.5.4
zookeeper版本 3.4.6
zookeeper地址(ip:port) node11:2282,node12:2282,node13:2282
tomcat版本 8.5.16
solr+tomcat地址 /home/anu/tomcat8
solr_home(core)地址 /home/anu/tomcat8/solr_home,   node11:8888(leader),node12:8888(follower),node13:8888(follower),node14:8888(follower)

  1、我早之前已經在一台機器上那裝過單機的Solr(鄙人是在node11機器上安裝的,通過tomcat+Solr實現,放在tomcat8中),所以直接來改動它里面的配置就可以啦

  2、為了保證端口不沖突,我們來改一下tomcat端口還有Solr端口

  

  修改./tomcat8/conf/server.xml,將下面幾個地方的端口盡量改動一下不要和別的地方沖突

  

  

  

  這些地方本人已經改過啦,注意上面那個8888端口是tomcat發布端口,這個后面要用到,需要設置成Solr端口

  3、配置tomcat8的啟動項,配置zookeeper和各個tomcat進行關聯:首先確定leader節點,本人使用node11作為leader,其余的作為follower,現在先配置leader的tomcat目錄下(我的是tomcat8)的bin/catalina.sh中的最上面添加一行 

  

JAVA_OPTS="-Djetty.port=8888 -Dbootstrap_confdir=/home/anu/tomcat8/solr_home/ustcinfo/conf -Dcollection.configName=solr_home -DzkHost=node11:2282,node12:2282,node13:2282 -DnumShards=2"

  8888:必須要和我們上面配置的tomcat端口一致,

  /home/anu/tomcat8/solr_home/ustcinfo/conf:這個是我的Solr_home 的路徑,這個下面我們單機安裝的時候已經說了這個的由來,下面馬上我再說一下

  solr_home:是我的solr_home名字,可以隨便取,但是盡量和你的solr_home文件名一樣,便於查看

  node11:2282,node12:2282,node13:2282:這是我的zookeeper集群,前面已經安裝並且已經啟動

  2:表示有兩個shard節點

下面大致解釋一下這些參數含義:

  • -Djetty.port Solr的發布端口,需要和tomcat端口一致,使用jetty.port是響應Solr內部jetty關聯
  • -Dbootstrap_confdir ZooKeeper需要准備一份集群配置的副本,這個參數是告訴SolrCloud這些配置是放在哪里,同時作為整個集群共用的配置文件。
  • -Dcollection.configName 指定你的配置文件上傳到zookeeper后的名字,建議和你所上傳的核心名字一致,這樣容易識別。
  • -DzkRun 在Solr中啟動一個內嵌的zooKeeper服務器,該服務會管理集群的相關配置。
  • -DzkHost 跟上面參數的含義一樣,允許配置一個ip和端口來指定用哪個Zookeeper服務器進行協調。
  • -DnumShards=2 配置需要把你的數據分開到多少個shard中
  • -Dbootstrap_conf=true 將會上傳solr/home里面的所有數據到zookeeper的home/data目錄,也就是所有的core將被集群管理,本次我未使用這個參數。

這里面配好之后,我們再說說我配置的Solr_home路徑由來。

  首先,我們在單機中已經將./solr-5.5.4/server/solr 下面所有的東西都拷貝到./tomcat8/solr_home目錄下。我們進入到./tomcat/sole_home 目錄下

  

  其次,在這個路徑下新建一個作為core使用的文件夾,名字可以隨意起,鄙人創建名字為ustcinfo的文件夾

  然后將./tomcat8/solr_home/configsets/basic_configs 目錄下的所有文件都拷貝到我們剛剛新建的ustcinfo 下面

mkdir ustcinfo
cp -r configsets/basic_configs/* ustcinfo/
cd ustcinfo/
ls
cd conf
pwd

  

  

  

  在這就可以看到我們配置的Solr_home地址,用於后面同一創建Solr集合識別core使用。

 

特別需要注意:上面添加JAVA_OPTS時針對leader節點的,其余三台機器的JAVA_OPTS如下:

JAVA_OPTS="-Djetty.port=8888 -Dcollection.configName=solr_home -DzkHost=node11:2282,node12:2282,node13:2282 -DnumShards=2"

這個配置后面會提到

 

  4、修改solr.xml的jetty.port參數值為tomcat的端口

  打開./tomcat8/solr_home/solr.xml 文件,修改jetty.port參數值為tomcat的端口(即我們前面配置的8888

   

  5、將配置好的tomcat+solr拷貝到其他三台機器node12、node13、node14,

scp -r tomcat8 anu@node12:/home/anu/
scp -r tomcat8 anu@node13:/home/anu/
scp -r tomcat8 anu@node14:/home/anu/

  6、修改其他三台follower的tomcat8啟動項,

  分別進入node12、node13、node14機器,通過vim tomcat8/bin/catalina.sh 打開catalina.sh文件,將tomcat啟動項的 -Dbootstrap_confdir=/home/anu/tomcat8/solr_home/ustcinfo/conf 刪掉,最終JAVA_OPTS參數如下

JAVA_OPTS="-Djetty.port=8888 -Dcollection.configName=solr_home -DzkHost=node11:2282,node12:2282,node13:2282 -DnumShards=2"

  

   7、分別啟動4台機器的tomcat8+Solr

  使用命令tomcat8/bin/catalina.sh start 或者tomcat8/bin/startup.sh 啟動四台tomcat8

  8、通過訪問頁面查看Sole配置

  在瀏覽器中打開http://192.168.219.11:8888/solr/index.html#/,進入后點擊左邊導航欄的cloud查看

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM