zookeeper3.4.5+tomcat7+solr-4.10.1分散式叢集搭建
一、 說明
本次分散式部署solr是在兩臺伺服器(10.21.16.31和10.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
2.解壓tar包到指定目錄:tar -zxvf zookeeper-3.4.5.tar.gz
3.進入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.
6. 修改zoo2.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk2,ClientPort=2182,同時在zookeeper-3.4.5目錄下新建zk2目錄
7. 修改zoo3.cfg配置檔案內容:dataDir=/home/zookeeper-3.4.5/zk3,ClientPort=2183,同時在zookeeper-3.4.5目錄下新建zk3目錄
6.在zoo1.cfg、zoo2.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..進入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配置檔案內容: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.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屬性啟用,同時修改為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_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相對應的值,注意:其中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得到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複製到34伺服器上,分別修改為apache-tomcat-7.0.50_4、apache-tomcat-7.0.50_5、data4、data5,並做相應對應的更改,至此所有的配置都結束,啟動5個結點的tomcat,訪問任一結點下的solr,選擇主介面上的cloud即可看見solr分散式部署情況!