solr版本:4.5.1java
當前我使用三臺服務器搭建集羣分別是192.168.0.1八、192.168.0.1九、192.168.0.20,其中18爲主服務器,1九、20爲從服務器,而且在20服務器安裝zookeepernode
1、在tomcat7中部署solr4apache
一、首先從官網下載solr4.5.1版本到三臺服務器bootstrap
二、tar -zxvf solr-4.5.1.tgz (解壓solr)vim
三、cd solr-4.3.1(進入solr文件夾)tomcat
四、mkdir /home/solr (在home目錄下面建立solr文件夾,個人tomcat也是安裝在home目錄下)服務器
五、複製solr-4.5.1/example/solr 目錄下的collection1目錄和solr.xml、zoo.cfg到/home/solr目錄下socket
六、到這裏,須要用到solr的war包。在solr-4.5.1/dist/ 下有 solr-4.5.1.war包將其更更名稱爲solr.war,接下來兩種方法能夠任選其一,由於solr4中將日誌的jar包單獨分離出來放到了solr-4.5.1/example/lib/ext目錄下。因此在部署的時候須要將這些jar包加進去,加進去的方法有兩種:ide
(a)將solr.war更改後綴名爲solr.zip,解壓後名稱爲solr將solr-4.5.1/example/lib/ext下的五個日誌包放到solr/WEB-INF/lib目錄下,從新打包成war文件。oop
(b)不用更改solr.war,直接將五個日誌包放到tomcat的lib目錄下
我比較傾向於第一種
七、將solr.war複製到 /home/solr目錄
八、建立tomcat/conf/Catalina/localhost/solr.xml 文件,文件內容(若是目錄沒有也能夠建立):
<Context docBase="/home/solr/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/home/solr" override="true" />
</Context>
九、啓動tomcat
十、輸入http://127.0.0.1:8080/solr 若是能夠正常看到solr 的目錄。則表示正確部署。在firfox下打開此目錄solr4的js對IE的支持很差。
2、安裝zookeeper
十一、官網下載zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/ 本人使用 zookeeper-3.4.5 將其安裝在20服務器上
十二、tar -zxvf zookeeper-3.4.5.tar 解壓zookeeper
1三、mkdir /home/zookeeper/data 建立zookeeper數據存放目錄
1四、cd /home/zookeeper-3.4.5/conf 進入解壓後的zookeeper目錄
1五、 vim zoo.cfg 修改zookeeper配置文件 內容以下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data (此目錄用於指定zookeeper數據存放目錄。就是剛剛建立的那個目錄)
clientPort=2181
1六、修改完成後啓動zookeeper 進入bin目錄
sudo zkServer.sh start
3、配置solr集羣
1七、先配置主服務器192.168.1.18
vim /home/tomcat/bin/catalina.sh 在圖片所示位置加入如下代碼
JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/home/www/sfbest/solr/collection1/conf -Dcollection.configName=myconf -DzkHost=192.168.1.20:2181 -DnumShards=3"
注:其中DzkHost是用來指定zookeeper服務器的ip和端口。Dnumshareds用來指定當前集羣中分片數 confdir目錄指定全部的索引庫都從collection1索引庫中同步字段
1八、配置從服務器 19 和20
vim /home/tomcat/bin/catalina.sh 在和上圖一樣的位置加入
JAVA_OPTS="-DzkHost=10.103.14.20:2181"
1九、保存後,依次啓動tomcat服務器 在firfox中輸入網址
http://192.168.1.18:8080/solr 看到如下界面即說明集羣搭建成功,此圖片中我添加了多個索引庫。因此顯示多個。正常狀況下顯示一個collection1即表示正常
20、寫入後使用界面進行數據查詢獲得如下數聽說明數據正常
補充點:
修改solr.xml
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">7080</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:15000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<str name="zkHost">hadoop.datanode3.com:4181</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
官網參考:
http://wiki.apache.org/solr/SolrCloudTomcat(在tomcat下搭建solr集羣)
http://wiki.apache.org/solr/SolrTomcat(在tomcat下搭建solr)