Solr5.5+tomcat8.0+zookeeper3.4叢集搭建
最近研究SolrCloud 發現沒有好的文章 自己動手摺騰了兩天,把結果分享下
版本:solr5.5.1 tomcat8.0 zookeeper3.4.8
這裡說明一下 因為新版本更新 ,也有一些地方是有更新的 比如說以前的solr.war包就沒有了 ,這裡為什麼用tomcat8.0是因為tomcat7.0版本跟solr5.5的不相容 只能使用tomcat8.0才可以相容solr5.5版本
叢集搭建環境 :vm虛擬機器 三臺
先關閉防火牆 service iptables stop
solrmaster IP:192.168.138.134 solrslave1 IP:192.168.138.135 solrslave2 IP:192.168.138.136
配置solrmaster, solrslave1, solrslave2的host檔案 vim /etc/hosts
以solrmaster機器為例
上傳zookeeper tomcat 以及solr包
解壓zookeeper包 到/usr/loca下,把zookeeper-3.4.8/conf檔案下的zoo_sample.cfg 改名為 zoo.cfg
在/usr/local/zookeeper-3.4.8檔案下新建一個檔案 data 用來存放zookeeper資料
修改zoo.cfg檔案
新增zookeeper叢集
在data目錄下新建一個檔案 , 內容為1 建立zookeeper標示
zookeeper-3.4.8echo "1" > /usr/local/zookeeper-3.4.8/data/myid
用scp命令把 /usr/local目錄下的zookeeper-3.4.8 和 zkdate目錄都拷貝到 solrslave1 和solrslave2 中 ,
scp -r /usr/local/zookeeper-3.4.8 solrslave1:/usr/local 把zookeeper目錄拷貝到 solrslave1
scp -r /usr/local/zookeeper-3.4.8 solrslave2:/usr/local 把zookeeper目錄拷貝到 solrslave2
把solrslave1中的data目錄下的myid內容改成2 echo "2" > /usr/local/zookeeper-3.4.8/data/myid
把solrslave2 中的data目錄下的myid改為3 echo "3" > /usr/local/zookeeper-3.4.8/data/myid
修改完成之後 ,啟動zookeeper
三臺機器都啟動 ,檢視狀態
solrmaster 狀態
solrslave1狀態
solrslave2 狀態
到此 zookeeper啟動成功
以solrmaster為列:
解壓tomcat8 和 solr5.5 到/usr/local 目錄下
把solr-5.5.1目錄下的server下的solr-webapp下的webapp複製到tomcat下webapps下並重命名為solr
再把 solr-5.5.1目錄下的server下的lib目錄下ext下的所有jar都拷貝到 tomcat8.0/webapps/solr/WEB-INF/lib下
然後在修改tomcat/webapps/solr/WEB-INF/下的web.xml檔案
紅色部分表示solr home家
在root下建立一個資料夾 命名為solr_home
cd /
mkdir solr_home
把solr-5.5.1目錄下server/solr下的所有檔案都拷貝到 /solr_home下
在tomcat8/webapps/solr/WEB-INF下建立一個classes資料夾 ,把/usr/local/solr-5.5.1/server/resources 下的log4j.properties複製到classes資料夾下
啟動tomcat sh /usr/local/apache-tomcat-8.0.33/bin/startup.sh
沒有solr-core 為了圖方便 直接將solr4.3版本的collection1複製到/usr/local/solr_home下
重啟tomcat
單機版solr已經搭好
搭建叢集版需要與zookeeper結合
把/solr_home/collection1/conf 目錄上傳到zookeeper
啟動三臺機器zookeeper
cd /usr/local/zookeeper-3.4.8/bin
./zkServer.sh start
先在solrmaster上把檔案上傳到zookeeper
此處是關鍵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cd /usr/local/solr-5.5.1/server/scripts/cloud-scripts
執行此命令可以將collection1/conf 目錄上傳到zookeeper
./zkcli.sh -zkhost 192.168.138.131:2181,192.168.138.132:2181,192.168.138.133:2181 -cmd upconfig -confdir /solr_home/collection1/conf -confname myconf
檢視 zookeeper目錄下有沒有此檔案
cd /usr/local/zookeeper-3.4.8/bin/
./zkCli.sh
ls /configs
由此conf檔案上傳成功
就是在每臺tomca/bin/下 修改catalina.sh檔案 在第二行加上一句話 JAVA_OPTS="-DzkHost=192.168.138.137:2181,192.168.138.138:2181,192.168.138.139:2181"
scp分別拷貝/usr/local/tomcat8.0 檔案到solrslave1 和solrslave2中
再把root目錄下的solr_home 拷貝到solrslave1 和 solrslave2中
分別啟動 solrmaster solrslave1 solrslave2 機器上的tomcat
開啟 solr管理介面 點選solrcloud
solrcloud 搭建成功
有不懂的隨時加QQ1780675810
視訊地址請參考 http://download.csdn.net/detail/u014793522/9445742