1. 程式人生 > >zookeeper3.4.5+tomcat7+solr-4.10.1分散式叢集搭建

zookeeper3.4.5+tomcat7+solr-4.10.1分散式叢集搭建

一、   說明

本次分散式部署solr是在兩臺伺服器(10.21.16.3110.21.16.34)上部署5個結點,10.21.16.31伺服器部署3個結點,10.21.16.34伺服器部署2個結點

二、   下載需要的工具包

zookeeper-3.4.5.tar.gz,tomcat-7.0.50.tar.gz,solr-4.10.1.tgz(jdk必須是7,可以使用系統自帶的openJDK)

三、   新增使用者

分別在兩臺伺服器上新增solr使用者

useradd  solr

passwd solr

四、   安裝Zookeeper

1.切換到solr使用者     su solr

2進入zookeeper

tar包目錄:cd  /home

2.解壓tar包到指定目錄:tar -zxvf  zookeeper-3.4.5.tar.gz 

3.進入zookeeperconf目錄:cd /home/zookeeper-3.4.5/conf

4.修改配置檔案zoo_sample.cfgzoo.cfgmv  zoo_sample.cfg  zoo1.cfg

5.修改配置檔案zoo_sample.cfgzoo.cfgmv  zoo_sample.cfg  zoo2.cfg

6.修改配置檔案zoo_sample.cfgzoo.cfgmv  zoo_sample.cfg  zoo3.cfg

5.

修改zoo1.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk1ClientPort=2181,同時在zookeeper-3.4.5目錄下新建zk1目錄

6. 修改zoo2.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk2ClientPort=2182,同時在zookeeper-3.4.5目錄下新建zk2目錄

7. 修改zoo3.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk3ClientPort=2183,同時在zookeeper-3.4.5目錄下新建zk3目錄

6.zoo1.cfgzoo2.cfg

zoo3.cfg最後新增如下內容:

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

說明:server.X=A:B:C

其中X是一個數字表示這是第幾號server.

A是該server所在的IP地址.

B配置該server和叢集中的leader交換訊息所使用的埠.

C配置選舉leader時所使用的埠.

7.分別在zk1,zk2,zk3新建檔案myid,zk1/myid檔案值為1,zk2/myid檔案值為2,zk3/myid檔案值為3

8.將配置到的zookeeper-3.4.5拷貝到10.21.16.34伺服器主機上

9.切換到10.21.6.34伺服器的solr使用者下

10..進入zookeeperconf目錄:cd  /home/ zookeeper-3.4.5/conf

11.修改配置檔案zoo1.cfgzoo4.cfgmv  zoo1.cfg zoo4.cfg

12.修改配置檔案zoo2.cfgzoo5.cfgmv  zoo2.cfg zoo5.cfg

13.刪除zoo3.cfg: rm  zoo3.cfg

14. 修改zoo4.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk4ClientPort=2184,同時在zookeeper-3.4.5目錄下新建zk4目錄

15. 修改zoo2.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk5ClientPort=2185,同時在zookeeper-3.4.5目錄下新建zk5目錄

16.修改zk4/myid檔案值為4,zk5/myid檔案值為5

17.分別在31和34上啟動zookeeper,切換到bin目錄下: cd /home/zookeeper-3.4.5/bin

18.1上先後執行./zkServer.sh  start zoo1.cfg     ./zkServer.sh  start zoo2cfg   ./zkServer.sh  start zoo3.cfg

19. 34上先後執行./zkServer.sh  start zoo4.cfg     ./zkServer.sh  start zoo5.cfg

由於啟動時,每個節點都會試圖去連線其它節點,因此先啟動的剛開始會連線不上其它的,導致日誌中會包含錯誤資訊,在未全啟動之前,這個屬正常現象。可以用./zkServer.sh status zoo1.cfg檢視狀態。至此zookeeper安裝結束!

五、   安裝Solr

1.  進入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 或者啟動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.   複製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複製到/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. 修改內容如下:(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. 修改內容如下:<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>標籤啟用,同時修改為

<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.xmlvi /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.shvi /home/solr/apache-tomcat-7.0.50_1/bin/catalina.sh

20. JAVA_OPTS屬性啟用,同時修改為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. 複製apache-tomcat-7.0.50_1得到apache-tomcat-7.0.50_2apache-tomcat-7.0.50_3

22. 分別修改apache-tomcat-7.0.50_2apache-tomcat-7.0.50_3webapps/solr/WEB-INF/web.xml、conf/server.xmlbin/catalina.sh相對應的值,注意:其中bin/catalina.sh應為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. 複製data1得到data2data3

24. 分別修改data2data3solr/collection1/conf/solr/solrconfig.xml、solr/solr.xml

25. apache-tomcat-7.0.50_2apache-tomcat-7.0.50_3data2data3複製到34伺服器上,分別修改為apache-tomcat-7.0.50_4apache-tomcat-7.0.50_5data4data5,並做相應對應的更改,至此所有的配置都結束,啟動5個結點的tomcat,訪問任一結點下的solr,選擇主介面上的cloud即可看見solr分散式部署情況!