一、 說(shuō)明
本次分布式部署solr是在兩臺(tái)服務(wù)器(10.21.16.31和10.21.16.34)上部署5個(gè)結(jié)點(diǎn),10.21.16.31服務(wù)器部署3個(gè)結(jié)點(diǎn),10.21.16.34服務(wù)器部署2個(gè)結(jié)點(diǎn)
二、 下載需要的工具包
zookeeper-3.4.5.tar.gz,tomcat-7.0.50.tar.gz,solr-4.10.1.tgz(jdk必須是7,可以使用系統(tǒng)自帶的openJDK)
三、 添加用戶
分別在兩臺(tái)服務(wù)器上添加solr用戶
useradd solr
passwd solr
四、 安裝Zookeeper
1.切換到solr用戶 su solr
2進(jìn)入zookeeper的tar包目錄:cd /home
2.解壓tar包到指定目錄:tar -zxvf zookeeper-3.4.5.tar.gz
3.進(jìn)入zookeeper的conf目錄:cd /home/zookeeper-3.4.5/conf
4.修改配置文件zoo_sample.cfg為zoo.cfg:mv zoo_sample.cfg zoo1.cfg
5.修改配置文件zoo_sample.cfg為zoo.cfg:mv zoo_sample.cfg zoo2.cfg
6.修改配置文件zoo_sample.cfg為zoo.cfg:mv zoo_sample.cfg zoo3.cfg
5.修改zoo1.cfg配置文件內(nèi)容:dataDir=/home/zookeeper-3.4.5/zk1ClientPort=2181,同時(shí)在zookeeper-3.4.5目錄下新建zk1目錄
6. 修改zoo2.cfg配置文件內(nèi)容:dataDir=/home/zookeeper-3.4.5/zk2,ClientPort=2182,同時(shí)在zookeeper-3.4.5目錄下新建zk2目錄
7. 修改zoo3.cfg配置文件內(nèi)容:dataDir=/home/zookeeper-3.4.5/zk3,ClientPort=2183,同時(shí)在zookeeper-3.4.5目錄下新建zk3目錄
6.在zoo1.cfg、zoo2.cfg、zoo3.cfg最后添加如下內(nèi)容:
server.1=10.21.16.31:2888:3888
server.2=10.21.16.31:2889:3889
server.3=10.21.16.31:2890:3890
server.4=10.21.16.34:2888:3888
server.5=10.21.16.34:2889:3889
說(shuō)明:server.X=A:B:C
其中X是一個(gè)數(shù)字, 表示這是第幾號(hào)server.
A是該server所在的IP地址.
B配置該server和集群中的leader交換消息所使用的端口.
C配置選舉leader時(shí)所使用的端口.
7.分別在zk1,zk2,zk3新建文件myid,zk1/myid文件值為1,zk2/myid文件值為2,zk3/myid文件值為3
8.將配置到的zookeeper-3.4.5拷貝到10.21.16.34服務(wù)器主機(jī)上
9.切換到10.21.6.34服務(wù)器的solr用戶下
10..進(jìn)入zookeeper的conf目錄:cd /home/ zookeeper-3.4.5/conf
11.修改配置文件zoo1.cfg為zoo4.cfg:mv zoo1.cfg zoo4.cfg
12.修改配置文件zoo2.cfg為zoo5.cfg:mv zoo2.cfg zoo5.cfg
13.刪除zoo3.cfg: rm zoo3.cfg
14. 修改zoo4.cfg配置文件內(nèi)容:dataDir=/home/zookeeper-3.4.5/zk4ClientPort=2184,同時(shí)在zookeeper-3.4.5目錄下新建zk4目錄
15. 修改zoo2.cfg配置文件內(nèi)容:dataDir=/home/zookeeper-3.4.5/zk5ClientPort=2185,同時(shí)在zookeeper-3.4.5目錄下新建zk5目錄
16.修改zk4/myid文件值為4,zk5/myid文件值為5
17.分別在31和34上啟動(dòng)zookeeper,切換到bin目錄下: cd /home/zookeeper-3.4.5/bin
18.在1上先后執(zhí)行./zkServer.sh start zoo1.cfg ./zkServer.sh start zoo2cfg ./zkServer.sh start zoo3.cfg
19. 在34上先后執(zhí)行./zkServer.sh start zoo4.cfg ./zkServer.sh start zoo5.cfg
由于啟動(dòng)時(shí),每個(gè)節(jié)點(diǎn)都會(huì)試圖去連接其它節(jié)點(diǎn),因此先啟動(dòng)的剛開(kāi)始會(huì)連接不上其它的,導(dǎo)致日志中會(huì)包含錯(cuò)誤信息,在未全啟動(dòng)之前,這個(gè)屬正?,F(xiàn)象??梢杂?/span>./zkServer.sh status zoo1.cfg查看狀態(tài)。至此zookeeper安裝結(jié)束!
五、 安裝Solr
1. 進(jìn)入tomcat、solr的tar包目錄:cd /home/solr
2. 解壓tomcattar包: tar -zxvf tomcat-7.0.50.tar.gz
3. 重命名tomcat解壓后文件名mvtomcat-7.0.50 apache-tomcat-7.0.50_1
4. 解壓solr tar包:tar –zxvf solr-4.10.1.tgz
5. 將solr-4.10.1/example/webapps/solr.war 到 apache-tomcat-8.0.12/webapps/目錄中 直接解壓 solr.war 或者啟動(dòng)tomcat 解壓 solr.war
6. 新建data1目錄:mkdir data1
7. 將solr-4.10.1/example/solr文件夾移到data1中: mv /home/solr/solr-4.10.1/example/solr /home/solr/data1
8. 復(fù)制solr-4.10.1/example/lib/ext下的jar包到/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/lib:cp -av /home/solr/solr-4.10.1/example/lib/ext/*.jar /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/lib
9. 在/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF下新建classes文件夾:mkdir classes
10. 將solr-4.10.1/example/resources/log4j.properties復(fù)制到/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/classes:mv /home/solr/solr-4.10.1/example/resources/log4j.properties /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/classes
11. 修改/home/solr/data1/solr/collection1/conf/solr/solrconfig.xml:vi /home/solr/data1/solr/collection1/conf/solr/solrconfig.xml
12. 修改內(nèi)容如下:(1)<dataDir>${solr.data.dir:/home/solr/data1/solr/collection1/data}</dataDir>
(2)<lockType>simple</lockType>
(3)<unlockonStartup>啟用,并修改為<unlockonStartup>true</unlockonStartup>
13. 修改/home/solr/data1/solr/solr.xml:vi /home/solr/data1/solr/solr.xml
14. 修改內(nèi)容如下:<intname="hostPort">${jetty.port:8081}</int>
15. 修改/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/web.xml:vi /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/web.xml
16. <env-entry>標(biāo)簽啟用,同時(shí)修改為
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/home/solr/data1/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
17. 修改/home/solr/apache-tomcat-7.0.50_1/conf/server.xml:vi /home/solr/apache-tomcat-7.0.50_1/conf/server.xml
18. 將8080端口改為8081
19. 修改/home/solr/apache-tomcat-7.0.50_1/bin/catalina.sh:vi /home/solr/apache-tomcat-7.0.50_1/bin/catalina.sh
20. JAVA_OPTS屬性啟用,同時(shí)修改為JAVA_OPTS="$JAVA_OPTS-Dbootstrap_confdir=/home/solr/data1/solr/collection1/conf-Dcollection.configName=myconf -Dbootstrap_config=true -DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184-DnumShards=2"
21. 復(fù)制apache-tomcat-7.0.50_1得到apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3
22. 分別修改apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3中webapps/solr/WEB-INF/web.xml、conf/server.xml、bin/catalina.sh相對(duì)應(yīng)的值,注意:其中bin/catalina.sh應(yīng)為JAVA_OPTS="$JAVA_OPTS-Dbootstrap_confdir=/home/solr/data2/solr/collection1/conf-DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184,如果是apache-tomcat-7.0.50_3中,則為JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/home/solr/data3/solr/collection1/conf-DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184
23. 復(fù)制data1得到data2、data3
24. 分別修改data2、data3中solr/collection1/conf/solr/solrconfig.xml、solr/solr.xml
25. 將apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3、data2、data3復(fù)制到34服務(wù)器上,分別修改為apache-tomcat-7.0.50_4、apache-tomcat-7.0.50_5、data4、data5,并做相應(yīng)對(duì)應(yīng)的更改,至此所有的配置都結(jié)束,啟動(dòng)5個(gè)結(jié)點(diǎn)的tomcat,訪問(wèn)任一結(jié)點(diǎn)下的solr,選擇主界面上的cloud即可看見(jiàn)solr分布式部署情況!
聯(lián)系客服