今天整理的是 在linux 環境中zookeeper搭建而且創建多個solr實例,和solr的集羣搭建。linux
使用環境和工具:linuxCentOS6.5 , apache-tomcat-7.0.47.tar.gz,jdk-7u55-linux-i586.tar.gz ,solr-4.10.3.tgz.tgz ,zookeeper-3.4.6.tar.gzweb
注:因爲本人是win7系統,因此安裝的是linux虛擬機。apache
JDK這裏就不寫安裝步驟了網上其餘大神也寫過,能夠去搜索一個。vim
————————————————————黃金分割線——————————————————tomcat
搭建zookeeper:服務器
在linux環境中先創建一個文件夾 放置解壓的zookeeper壓縮包:app
[root@localhost ~]# mkdir /usr/local/solrcloudwebapp
解壓zookeeper壓縮包,並保存在剛剛創建的文件中重命名,三個zookeeper實例:工具
[root@localhost 文件位置]# tar -zxvf zookeeper-3.4.6.tar.gz 測試
[root@localhost 文件位置]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1
[root@localhost 文件位置]# cp -r /usr/local/solrcloud/zookeeper1 /usr/local/solrcloud/zookeeper2
[root@localhost 文件位置]# cp -r /usr/local/solrcloud/zookeeper1 /usr/local/solrcloud/zookeeper3
在每個zookeeper文件夾中建立一個data文件加並在其中創建一個myid,件的內容就是此zookeeper的編號一、二、3:
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper1/data
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper2/data
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper3/data
[root@localhost ~]# echo 1 >> /usr/local/solrcloud/zookeeper1/data/myid
[root@localhost ~]# echo 2 >> /usr/local/solrcloud/zookeeper2/data/myid
[root@localhost ~]# echo 3 >> /usr/local/solrcloud/zookeeper3/data/myid
將每個zookeeper/conf文件夾中的zoo_sample.cfg文件複製一個份名叫zoo.cfg,而且修改zoo.cfg文件:
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper1/conf/zoo.cfg
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper2/conf/zoo.cfg
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper3/conf/zoo.cfg
zoo.cfg配置文件的修改
目前zookeeper的三個實例的搭建已經完成能夠先啓動看看有什麼其餘問題,這個建議建立一個.sh文件能夠一塊兒將三個實例一塊兒啓動。
zookeeper啓動 :[root@localhost ~]# ./zkServer.sh start
zookeeper中止:[root@localhost ~]# ./zkServer.sh stop
查看zookeeper狀態:[root@localhost ~]# ./zkServer.sh status
————————————————————黃金分割線——————————————————
建立四個solr實例:
建立一個tomcat文件夾便於將他們放在一塊兒,四個tomcat都放在tomcat文件,爲他們加上標號
即:tomcat1,tomcat2,tomcat3,tomcat4,
tomcat端口號分別設定爲8080-8083,
apache和tomcat連接的端口分別設定爲(前臺apache就是經過AJP協議與tomcat進行通訊):
8109-8112
負責監聽關閉tomcat的請求的端口分別設定爲: 8005-8008
[root@localhost ~]# mkdir /usr/local/tomcat
解壓 apache-tomcat-7.0.47.tar.gz,solr-4.10.3.tgz.tgz :
tomcat:
[root@localhost 文件位置]# tar -zxvf apache-tomcat-7.0.47.tar.gz
[root@localhost 文件位置]# tar -zxvf solr-4.10.3.tgz.tgz
將解壓的apache-tomcat-7.0.47文件放到tomcat文件並命名爲tomcat1 ,再建立3個實例
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat1
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat2
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat3
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat4
將解壓的solr-4.10.3/dist文件夾中的solr-4.10.3.war 複製到每個tomcat實例中的webapps文件家中命名爲solr:
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat1/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat2/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat3/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat4/webapps/solr.war
啓動每個tomcat將其war包解壓再將war包刪除 :
啓動命令:tomcat/bin/startup.sh
[root@localhost ~]# rm -r /usr/local/tomcat/tomcat1/webapps/solr.war (剩下三個略。)
將solr-4.10.3/example/lib/ext 中的全部jar包放到tomcat中solr項目裏面的lib文件裏面:
[root@localhost ext]# cp -r ext/* /usr/local/tomcat/tomcat1/webapps/solr/WEB-INF/lib
(剩下三個略。)
複製4分solr-4.10.3/example中的solr文件 而且命名爲solrhome(我在這裏將其都放在了tomcat文件夾裏面了)
[root@localhost example]# cp -r solr /usr/local/tomcat/solrhome1(剩下三個略。)
修改每個solr項目的web.xml定義solrhome文件路徑:
建立四個solr實例完畢
————————————————————黃金分割線——————————————————
搭建solrcloud的搭建:
將solrhome中的配置文件上傳到zookeeper客戶端中:
客戶端命令位置: [root@localhost solr-4.10.3]# cd /example/scripts/cloud-scripts
上傳命令:
[root@localhost cloud-scripts]
./zkcli.sh -zkhost 192.168.110.130:2181,192.168.110.130:2182,192.168.110.130:2183 -cmd upconfig -confdir /usr/local/tomcat/solrhome1/collection1/conf -confname myconf
注:上傳時候把zookeeper三個實例打開否則會上傳失敗
測試是否上傳成功(略):
修改每個solrhome中的solr.xml文件,指定當前實例運行的ip地址及端口號:
[root@localhost solrhome1]vim /usr/local/tomcat/solrhome1/solr.xml (另外三個略。)
如圖:
修改每個tomcat實例中bin/catalina.sh文件的DzkHost指定zookeeper服務器地址:
JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"
注:可使用vim的查找功能查找到JAVA_OPTS的定義的位置,而後添加:
如圖:
從新啓動tomcat。完成solrcloud的搭建。
————————————————————黃金分割線——————————————————
使用如下命令建立:
http://192.168.110.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
刪除collection1:
http://192.168.110.130:8080/solr/admin/collections?action=DELETE&name=collection1