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
,返回如下資訊表示叢集建立成功: