1. 程式人生 > >Solr之叢集搭建

Solr之叢集搭建

Zookeeper:3.4.12
Solr:7.3.1
Tomcat:8.5.29

搭建的是偽叢集:3個zookeeper例項,4個tomcat及solr例項
建立2個目錄:zookeeper(3個zookeeper解壓包,分別為zookeeper-1、zookeeper-2、zookeeper-3)和tomcat(tomcat-1、tomcat-2、tomcat-3、tomcat-4)

1、Zookeeper叢集的搭建

1.1、下載

Zookeeper官網下載Zookeeper包,並解壓.

1.2、編輯配置檔案

進入zookeeper-1/conf目錄,將zoo_sample.cfg

重新命名為zoo.cfg,並修改

# 預先建立改目錄
dataDir=/Users/dang/workspace/javaspace/zookeeper/zookeeper-1/data

clientPort=2281

#2881是zookeeper的通訊埠
#3881時zookeeper的投票選舉埠
#1代表的是zookeeper的id號
server.1=10.2.200.87:2881:3881
server.2=10.2.200.87:2882:3882
server.3=10.2.200.87:2883:3883

注意:zookeeper-2、zookeeper-3的配置檔案和zookeeper-1的不同之處在於:dataDir和clientPort.


另外server.x中x的值配置如下:在zookeeper-1/data下建立檔案myid,內容為1;另外為zookeeper-2和zookeeper-3的也建立myid檔案,值分別為2、3.

1.3、指令碼

在zookeeper目錄下建立下面的3個指令碼
start-zk.sh

zookeeper-1/bin/zkServer.sh start 
zookeeper-2/bin/zkServer.sh start 
zookeeper-3/bin/zkServer.sh start 

stop-zk.sh

zookeeper-1/bin/zkServer.sh stop 
zookeeper-2
/bin/zkServer.sh stop zookeeper-3/bin/zkServer.sh stop

status-zk.sh

zookeeper-1/bin/zkServer.sh status 
zookeeper-2/bin/zkServer.sh status
zookeeper-3/bin/zkServer.sh status

2、Solr叢集搭建

tomcat的配置和solr單例項的建立請參考Solr之單例機安裝.
先拷貝4份單機安裝中的tomcat目錄到tomcat目錄,並拷貝四份的solrhome目錄.

2.1、Tomcat的修改

2.1.1、修改/etc/profile

新增如下內容:

#tomcat-1
export CATALINA_1_BASE=/Users/dang/workspace/javaspace/tomcat/tomcat-1
export CATALINA_1_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-1
export TOMCAT_1_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-1
#tomcat-2
export CATALINA_2_BASE=/Users/dang/workspace/javaspace/tomcat/tomcat-2
export CATALINA_2_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-2
export TOMCAT_2_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-2
#tomcat-3
export CATALINA_3_BASE=/Users/dang/workspace/javaspace/tomcat/tomcat-3
export CATALINA_3_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-3
export TOMCAT_3_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-3
#tomcat-4
export CATALINA_4_BASE=/Users/dang/workspace/javaspace/tomcat/tomcat-4
export CATALINA_4_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-4
export TOMCAT_4_HOME=/Users/dang/workspace/javaspace/tomcat/tomcat-4

export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_1_HOME/bin:$CATALINA_2_HOME/bin:$CATALINA_3_HOME/bin:$CATALINA_4_HOME/bin:$M2_HOME/bin:/usr/local/sbin:/usr/local/bin:$PATH
2.1.2、修改tomcat下bin/catalina.sh

四個tomcat目錄都要進行下面的修改,修改的值根據每個的實際情況而有所不同.下面以tomcat-1/bin/catalina.sh為例:
將catalina.sh檔案中的CATALINA_HOME全部替換為CATALINA_1_HOME,CATALINA_BASE全部替換為CATALINA_1_BASE.

2.1.3、修改tomcat下conf/server.xml

tomcat-1/conf/server.xml:
將檔案中的port:8005、8080、8009分別改為8205、8280、8209;

tomcat-1/conf/server.xml:
將檔案中的port:8005、8080、8009分別改為8205、8280、8209;

tomcat-1/conf/server.xml:
將檔案中的port:8005、8080、8009分別改為8205、8280、8209;

tomcat-1/conf/server.xml:
將檔案中的port:8005、8080、8009分別改為8205、8280、8209;

2.1.4、修改tomcat/webapps下的solr工程

修改tomcat-1/webapps/solr/WEB-INF/web.xml中的<env-entry-value>,如下所示:

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/Users/dang/workspace/javaspace/solr-7.3.1/solrhome1</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

對於tomcat-2、3、4的修改:值分別對應solrhome2、3、4的路徑.

2.1.5、指令碼

start.sh

tomcat-1/bin/startup.sh
tomcat-2/bin/startup.sh
tomcat-3/bin/startup.sh
tomcat-4/bin/startup.sh

stop.sh

tomcat-1/bin/shutdown.sh
tomcat-2/bin/shutdown.sh
tomcat-3/bin/shutdown.sh
tomcat-4/bin/shutdown.sh

2.2、修改solrhome

2.2.1、修改solr.xml

修改solrhome1目錄下的solr.xml檔案,如下所示:

# 在<solrcloud>標籤中,host、hostport對應的是tomcat-1的IP和啟動埠
<str name="host">${host:10.2.200.87}</str>
<int name="hostPort">${jetty.port:8280}</int>

對solrhome2、3、4也要進行修改,分別對應tomcat-2、3、4.

2.2.2、刪除core.properties

刪除solrhome1、2、3、4子目錄new_core下的core.properties
new_core為單機安裝時建立的core目錄

2.3、向zookeeper註冊solr配置

2.3.1、啟動zookeeper

執行zookeeper目錄下的start-zk.sh指令碼,然後執行status-zk.sh指令碼,如果mode:follower(或leader)說明叢集搭建並啟動成功,如下圖所示:
這裡寫圖片描述

2.3.2、註冊

在solr解壓目錄solr-7.3.1下

cd server/scripts/cloud-scripts
# 註冊命令
./zkcli.sh -zkhost 10.2.200.87:2281,10.2.200.87:2282,10.2.200.87:2283 -cmd upconfig -confdir /Users/dang/workspace/javaspace/solr-7.3.1/solrhome1/new_core/conf -confname myconf

上述註冊命令只需執行一次即可,solr叢集中每個節點配置資訊是一樣的

2.4、啟動

2.4.1、啟動tomcat

執行tomcat目錄下的start.sh指令碼即可啟動四個tomcat例項.

2.4.2、建立叢集

在瀏覽器中請求http://localhost:8280/solr/admin/collections?action=CREATE&name=myconf&numShards=2&replicationFactor=2,返回如下資訊表示叢集建立成功:
這裡寫圖片描述

2.4.3、驗證